GD32 是国产单片机,据说开发人员来自ST公司,GD32 也是以 STM32 作为模板做出来的。所以 GD32 和 STM32 有很多地方都是一样的,不过 GD32 毕竟是不同的产品,不可能所有东西都沿用 STM32,有些自主开发的东西还是有区别的。不同的地方如下:
1、内核
GD32 采用二代的 M3 内核,STM32 主要采用一代 M3 内核, ARM 公司的 M3 内核勘误,GD 使用的内核只有 752419 这一个 BUG。
2、主频
使用HSE(高速外部时钟):GD32的主频最大108M,STM32的主频最大72M
使用HSI(高速内部时钟):GD32的主频最大108M,STM32的主频最大64M
主频大意味着单片机代码运行的速度会更快,项目中如果需要进行刷屏,开方运算,电机控制等操作,GD 是一个不错的选择。
3、供电
外部供电:GD32 外部供电范围是 2.63.6V,STM32 外部供电范围是2.0 3.6V或1.65~ 3.6V。GD 的供电范围比 STM32 相对要窄一点。
内核电压:GD32 内核电压是 1.2V,STM32 内核电压是 1.8V。GD 的内核电压比 STM32 的内核电压要低,所以 GD 的芯片在运行的时候运行功耗更低。
4、Flash差异
GD32 的 Flash 是自主研发的,和 STM32 的不一样。
GD Flash 执行速度:GD32 Flash 中程序执行为 0 等待周期。
STM32 Flash 执行速度:ST 系统频率不访问 flash 等待时间关系:0 等待周期,当 0
Flash 擦除时间:GD 擦除的时间要久一点,官方给出的数据是这样的:GD32F103/101 系列 Flash 128KB 及以下的型号, Page Erase 典型值 100ms, 实际测量 60ms 左右。对应的 ST 产品 Page Erase 典型值 20~40ms。
5、功耗
从下面的表可以看出 GD 的产品在相同主频情况下,GD 的运行功耗比 STM32小,但是在相同的设置下 GD 的停机模式、待机模式、睡眠模式比 STM32 还是要高的。
6、串口
GD 在连续发送数据的时候每两个字节之间会有一个 Bit 的 Idle,而 STM32 没有,如下图:
GD 的串口在发送的时候停止位只有 1/2 两种停止位模式。STM32 有 0.5/1/1.5/2 四种停止位模式。
GD 和 STM32 USART 的这两个差异对通信基本没有影响,只是 GD 的通信时间会加长一点。
7、ADC 差异
GD 的输入阻抗和采样时间的设置和 ST 有一定差异,相同配置 GD 采样的输入阻抗相对来说要小。具体情况见下表这是跑在 72M 的主频下,ADC 的采样时钟为 14M 的输入阻抗和采样周期的关系:
8、FSMC
STM32 只有 100Pin 以上的大容量(256K及以上)才有 FSMC,GD32 所有的 100Pin 或 100Pin 以上的都有 FSMC。
9、103 系列 RAM&FLASH 大小差别
GD103 系列和 ST103 系列的 ram 和 flash 对比如下图:
10、105&107系列STM32和GD的差别
GD的105/107的选择比ST的多很多,具体见下表:
11、抗干扰能力
GD 的抗干扰能力不如 STM32,还需要一定打磨。
总结:STM32 和 GD32 是同质化产品,区别一个是国外,一个是国产;就像目前的国产车和进口车,可能在底盘 驾驶感受等方面还有些差异 但是我们相信,假以时日,国产一定能够进步,一定能够媲美进口器件。最近流行国产化替代,所以 GD32 还是很有发展前景的。