烟雨入江南丶 发表于 2018-6-8 10:02:36

官方生成的MCU代码(hal库)移植到标准库的STM32教程

本帖最后由 Genius 于 2018-6-26 16:34 编辑

手头上正好有STM32的开发板和ESP-12E模块,想着控制个WS2812玩玩。到MCU开发的时候下载了生成的代码发现是HAL库的,无奈自己刚刚学习stm32,用的是标准库:'(,在论坛发现关于STM32CubeMX移植的教程满天飞,标准库却寥寥无几,发现有很多群友和我一样刚刚接触不知道怎么移植,这里参考了官方的移植MSP340教程并修改出适用于STM32标准库的教程。

-----------------------------------------------------------------------------------------------------------------------
诶,那个,第一次写教程,stm32也刚接触没多久,水平有限,有什么写得不好或者错了的地方请告之改正:handshake

OK,第三步进入正题

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<len; i++)
    {
         //这里填入串口发送函数
          TxBuff_ESP8266=*buf++;
                        
       /* if(i >=2 && buf == 0xFF)
      {                        
             //这里填入串口发送函数,发送0x55,意思是遇到0xFF后面要加0x55
             //这地方折腾了很久才成功,官方的大神说要加上,但是我删除了也可以用,求解释
             //官方说是要求加上的..我直接删除了也能用,你们要是这里加了不行的话也删掉试试
      }*/修改好了记得保存。

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


我的初始化函数是自己封装的,比较简陋,反正功能能实现就行了:lol

5、修改中断函数


接下来就是编译了:loveliness:,要是有错误的地方看一下是不是外部函数调用的时候没有包含进函数所在的头文件。

6、打开gizwits_product.c,找到gizwitsEventProcess的函数,下面那里有你添加的数据点,可以添加自己想要的功能,举个栗子我的是控制WS2812,直接在里面调用WS2812的亮灯函数,把读到的数据颜色数据填入就可以了



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




要是有什么错误的地方请指正,我也是这两天刚刚琢磨出来,希望能互相学习。

附上参考官方的移植MSP430教程:
http://docs.gizwits.com/zh-cn/deviceDev/GoKit3_DEV_SDK_Common_transplant.html


顺便问一下。。下面多了两张图片怎么删除。。第一次用这个。。- -








枫叶1号 发表于 2018-6-9 14:28:07

可以学习学习~

烟雨入江南丶 发表于 2018-6-11 09:08:32

枫叶1号 发表于 2018-6-9 14:28
可以学习学习~

:lol:lol............

i328326681 发表于 2018-6-13 03:03:39

顶一个,学习学习,哈哈哈

Genius 发表于 2018-6-15 15:14:35

感谢分享,文章已分享至公众号:https://mp.weixin.qq.com/s?__biz=MzI4NzQxNzkwNA==&mid=2247485282&idx=1&sn=20dac6e5d805806502725f66dedc1d2f&chksm=ebccb43ddcbb3d2bfc947856f30745aa39dab3bc80752d39bb23d9c64f501861ce554b5e1ff7#rd

烟雨入江南丶 发表于 2018-6-19 09:07:57

Genius 发表于 2018-6-15 15:14
感谢分享,文章已分享至公众号:https://mp.weixin.qq.com/s?__biz=MzI4NzQxNzkwNA==&mid=2247485282&idx ...

好的~......

若雨小新 发表于 2018-10-6 15:28:45

ESP8266那个在哪定义的

稳压又烧了 发表于 2019-2-2 11:39:56

#在这里快速回复#在论坛发现关于STM32CubeMX移植的教程满天飞???在哪里?我咋找不到

机智云萌新 发表于 2020-10-8 10:12:28

学习一下
页: [1]
查看完整版本: 官方生成的MCU代码(hal库)移植到标准库的STM32教程