GD32使用HAL库(CubeMX生成代码)编程(直接替换同型号STM32替换)

GD32直接使用HAL库(CubeMX生成代码)编程

本文章参考以下文章:

无。

一、使用背景

由于最近芯片价格高涨,STM32出现高价格与缺货的囧况。

https://baijiahao.baidu.com/s?id=1709133215644206348&wfr=spider&for=pc

与此同时,在各个设备上的国产化需求也日益旺盛。
以往较多的低端设备上,或者定制化嵌入式设备中都采用的意法半导体公司的STM32芯片作为主控制器,但由于受到上述两点的影响,设备采用国产化芯片成了主要解决方案。
在这里插入图片描述

二、芯片选型

为了加快项目进度,或原有程序移植,建议使用与STM32 Pin-Pin对应的国产芯片。
本次实验挑选了GD32F103RCT6直接替换STM32F103RCT6,这个型号的GD32是与STM32差距最小的(外部封装、内部寄存器)。
关于STM32与GD32的差异,有兴趣的可以去查查。

三、CubeMx程序生成

根据个人的工程或者项目自定义创建CubeMX的工程(使用对于的STM32的型好),并生成代码。
采用GD32F103RCT6与GD32F103VET6,已经完成以下外设的实验:

  1. IO控制
  2. 看门狗
  3. DMA
  4. 时钟分配(GD32理论可以跑108M,STM32最多72M,属于向下兼容)
  5. ADC(PWM触发的DMA方式)与DAC(阻塞)
  6. 定时器1、2、3、4、5,在使用FreeRTOS时,往后的定时器作为sysTick出现过问题,初始化不通过,目前还没有深究这部分是GD32的定时器与STM32不兼容,还是FreeRTOS的问题,建议采用前面部分的定时器做sysTick。
  7. RTC功能
  8. 串口(空闲中断的DMA接收,发送,1.8.4版本HAL库直接有空闲中断接收)
  9. CAN(貌似不能与USB同时使用,共享一个RAM地址,GD32的CAN功能不能使用1.8.4版本)
  10. FreeRTOS(直接使用CubeMX生成)
  11. 内部Flash读写(低速)

以上实验不需要去更改任何一个参数或增加延时,适用于1.8.31.8.4版本。
在这里插入图片描述

四、Keil修改项

目前GD32唯一与STM32使用不同的地方,之前的开发都与STM32一致。
  1. 修改器件型号,修改为对应的GD32的型号,(找不到器件型号,需要去兆易创新官网下载)

CSDN链接:
https://download.csdn.net/download/qq_40824852/72547805

官网下载链接:
GD32固件包
找到对应的.pack文件直接安装即可。
这一步骤是保证固件对应GD32。

在这里插入图片描述
在这里插入图片描述
修改型号后,再次使用CubeMX生成代码后,会出现以下情况,重新选择正确的GD32型号即可。
在这里插入图片描述
2. 修改下载相关的设置(不使用keil附带的下载设置,不用管这部分)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
最后点击确认即可.

  1. 正常编译工程,并下载程序至芯片,程序就可以正常运行了!
除GD32F103系列外的芯片,可能不适用上述操作。

五、总结

GD32替换STM32只需一步!

版权声明:本文为CSDN博主「zhuzhu、」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40824852/article/details/122254959

生成海报
点赞 0

zhuzhu、

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

STM32学习笔记2

GPIO GPIO:General Purpose Input & Output 是通用输入输出端口的简称,简单来说就是软件可控制的引脚, STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以

stm32f407用oled实时显示日期和时间

这里我用的rtc时钟是非常好用的,先借鉴一下正点原子的理论知识。 STM32F4 的 RTC,是一个独立的 BCD 定时器/计数器。RTC 提供一个日历时钟(包含年月日时分秒信息)、两个