只需六步,即可将Hal库移植到STM32标准库

手头上正好有STM32的开发板和ESP-12E模块,想着控制个WS2812玩玩。到MCU开发的时候下载了生成的代码发现是HAL库的,无奈自己刚刚学习stm32,用的是标准库这里参考了官方的移植MSP340教程并修改出适用于STM32标准库的教程。

步骤1、下载好的代码包是这样的,需要把这两个文件夹直接复制到自己工程的文件夹里面:

只需六步,即可将Hal库移植到STM32标准库_第1张图片

只需六步,即可将Hal库移植到STM32标准库_第2张图片

步骤2、添加到自己的工程组里面,并添加路径:

只需六步,即可将Hal库移植到STM32标准库_第3张图片

只需六步,即可将Hal库移植到STM32标准库_第4张图片

步骤3、正题来了,现在开始移植工作,需要修改的文件分别如下:3.1、打开gizwits_product.h 需要修改的地方如下,查看代码行数可以快速找到)

只需六步,即可将Hal库移植到STM32标准库_第5张图片

3.2、打开gizwits_product.c,需要修改的地方如下:

只需六步,即可将Hal库移植到STM32标准库_第6张图片

只需六步,即可将Hal库移植到STM32标准库_第7张图片

下面删除的几个初始化函数很重要...必须自己写好,要能正常使用

只需六步,即可将Hal库移植到STM32标准库_第8张图片

接下来是串口发送函数,我用的是DMA+中断发送接收的,修改成能发送数据的函数..建议先把串口功能调试好在填入调用

int32_t uartWrite(uint8_t *buf, uint32_t len)

{

uint32_t i = 0;

if(NULL == buf)

{

return -1;

}

for(i=0; i

{

//这里填入串口发送函数

TxBuff_esp8266[i]=*buf++;

/* if(i >=2 && buf[i] == 0xFF)

{                        

//这里填入串口发送函数,发送0x55,意思是遇到0xFF后面要加0x55

//这地方折腾了很久才成功,官方的大神说要加上,但是我删除了也可以用,求解释

//官方说是要求加上的..我直接删除了也能用,你们要是这里加了不行的话也删掉试试

}*/

修改好了记得保存。

步骤4、接下来打开main.c文件添加自己的初始化代码,并且调用gizwits的相关函数记得把这两个头文件包含进去

#include "gizwits_product.h"

#include "common.h"

只需六步,即可将Hal库移植到STM32标准库_第9张图片

我的初始化函数是自己封装的,比较简陋,反正功能能实现就行了步骤5、修改中断函数

只需六步,即可将Hal库移植到STM32标准库_第10张图片

接下来就是编译了,要是有错误的地方看一下是不是外部函数调用的时候没有包含进函数所在的头文件。步骤6、打开gizwits_product.c,找到gizwitsEventProcess的函数,下面那里有你添加的数据点,可以添加自己想要的功能。

举个栗子我的是控制WS2812,直接在里面调用WS2812的亮灯函数,把读到的数据颜色数据填入就可以了

只需六步,即可将Hal库移植到STM32标准库_第11张图片

移植的步骤大概就是这么多,试了一下烧录了进去确实可以用app控制。还有很多功能没有调试,剩下的功能要去参考其他大神的了。静静的做一名的伸手党。

要是有什么错误的地方请指正,我也是这两天刚刚琢磨出来,希望能互相学习。诶,那个,第一次写教程,stm32也刚接触没多久,水平有限,有什么写得不好或者错了的地方请告之改正。

你可能感兴趣的:(物联网)