什么是GD32?
GD32是由北京兆易创新开发的国产32位MCU,基于Arm Cortex-M3/M23/M4内核的32位通用微控制器。目前已经推出GD32F1xx,GD32F2xx,GD32F3xx,GD32F4xx系列,与STM32相比,CPU主频更高,内存更多,外设更丰富。
GD32与STM32区别
GD32和STM32都是基于ARM Cortex-M3/M4内核开发的通用微控制器。主要从CPU,内存,外设,固件库,成本分析。
以STM32F103和GD32F103为例,列出的是该系列的最高参数
STM32F103 | GD32F103 | |
---|---|---|
CPU | 72MHz | 108MHz |
FLASH | < 512K | < 3M |
RAM | < 64K | < 256K |
外设 | 3个ADC,2个DAC,4个通用TIM,2个高级TIM,2个基本TIM,3个SPI,2个I2C,5个USART,1个USB,1个CAN,1个SDIO | 3个ADC,2个DAC,10个通用TIM,2个基本TIM,2个高级TIM,3个SPI,2个I2C,5个USART,2个I2S,2个CAN,1个USBD,1个USBFS,1个MAC |
参考价: | ||
![]() |
不当家不知柴米油盐贵,一块MCU居然这么贵。
总体来说,GD32从CPU,内存,外设丰富度,成本等各方面均优于STM32,关键是便宜啊。
最大的问题恐怕就是开发资料少,与之相关的生态环境尚未完善,不过这已经很不错了。
要啥自行车???
固件驱动区别
ARM内核:关于ARM内核的驱动,无论是ST还是GD还是恩智浦都是通用的
外设驱动:ST的固件驱动架构完胜GD。ST的外设配置按照 结构体配置->外设初始化->外设使能进行配置,每个外设结构体成员对应该外设的一个寄存器,开发调试简单方便,并且外设与外设之间配置流程相似,程序可读性强。
GD外设配置以函数为主,通过各个函数传参配置外设寄存器,没有外设结构体那么一目了然,程序可读性差。不过底层都是一样的,习惯成自然。
但是,GD好像库兼容性差并且库版本不规范,点名批评一下
比如这样,官网下载的V2.1.1版本
打开gd32f4xx.h之后就不一样了,既然你更新了为什么就不能改下版本号呢,以为你这没更新呢,坑
MCU选型
ST选型
GD选型