手头上正好有STM32的开发板和ESP-12E模块,想着控制个WS2812玩玩。到MCU开发的时候下载了生成的代码发现是HAL库的,无奈自己刚刚学习stm32,用的是标准库这里参考了官方的移植MSP340教程并修改出适用于STM32标准库的教程。
步骤1、下载好的代码包是这样的,需要把这两个文件夹直接复制到自己工程的文件夹里面:
步骤2、添加到自己的工程组里面,并添加路径:
步骤3、正题来了,现在开始移植工作,需要修改的文件分别如下:3.1、打开gizwits_product.h需要修改的地方如下,查看代码行数可以快速找到)
3.2、打开gizwits_product.c,需要修改的地方如下:
下面删除的几个初始化函数很重要...必须自己写好,要能正常使用
接下来是串口发送函数,我用的是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"
我的初始化函数是自己封装的,比较简陋,反正功能能实现就行了步骤5、修改中断函数
接下来就是编译了,要是有错误的地方看一下是不是外部函数调用的时候没有包含进函数所在的头文件。步骤6、打开gizwits_product.c,找到gizwitsEventProcess的函数,下面那里有你添加的数据点,可以添加自己想要的功能。
举个栗子我的是控制WS2812,直接在里面调用WS2812的亮灯函数,把读到的数据颜色数据填入就可以了
移植的步骤大概就是这么多,试了一下烧录了进去确实可以用app控制。还有很多功能没有调试,剩下的功能要去参考其他大神的了。静静的做一名的伸手党。
要是有什么错误的地方请指正,我也是这两天刚刚琢磨出来,希望能互相学习。诶,那个,第一次写教程,stm32也刚接触没多久,水平有限,有什么写得不好或者错了的地方请告之改正。
-
mcu
+关注
关注
146文章
17141浏览量
351095 -
STM32
+关注
关注
2270文章
10897浏览量
355862
原文标题:官方生成的MCU代码(hal库)移植到标准库的STM32教程
文章出处:【微信号:IoTMaker,微信公众号:机智云开发者】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论