STM32F1和GD32F1有什么区别?

💡 原文中文,约1900字,阅读约需5分钟。
📝

内容提要

本文比较STM32F1与GD32F1:GD32F1采用第二代Cortex-M3内核,最高主频108MHz(STM32F1为72MHz或64MHz),内核电压1.2V,运行功耗更低;Flash为自主设计,支持零等待执行,但擦除速度较慢;停机、待机和睡眠模式功耗较高;串口发送时字节间多一个空闲位;ADC输入阻抗较小;100脚及以上封装均带FSMC。

🔎

延伸解读

替代背景与定位

文章指出,全球MCU芯片价格上涨,尤其是STM32部分型号价格已涨几倍,许多公司开始寻找替代方案,而GD32被认为是国内最有效的替代。GD32由兆易创新开发,2013年推出首款Cortex-M内核产品GD32F1,设计上借鉴了STM32,某些型号可实现无缝替换,但毕竟是独立产品,不能完全沿用STM32的一切。

性能与功耗的取舍

GD32F1采用第二代Cortex-M3内核,主频最高108MHz,高于STM32F1的72MHz(HSE)或64MHz(HSI),运行速度更快,适合刷屏、开方运算、电机控制等场景。其内核电压1.2V低于STM32的1.8V,相同主频下运行功耗更低。但需注意,在停机、待机、睡眠模式下,GD32的功耗反而比STM32高,低功耗应用需权衡。

外设与存储的差异点

GD32的Flash为自主设计,支持零等待执行,但擦除时间较长:128KB及以下型号Page Erase典型值100ms,实测约60ms,而STM32典型值为20~40ms。串口连续发送时,GD32每两个字节之间多一个Bit的Idle。ADC在相同配置下输入阻抗相对较小。此外,GD32所有100脚及以上封装均带FSMC,而STM32仅100脚以上大容量(256K及以上)才有。

❓

Q&A

GD32F1和STM32F1的内核有什么区别?

GD32F1采用第二代Cortex-M3内核,而STM32F1主要采用第一代Cortex-M3内核。根据ARM公司的M3内核勘误表,GD32使用的内核只有一个BUG(编号752419)。

GD32F1的最高主频是多少?比STM32F1快多少?

使用HSE时,GD32F1最高主频为108MHz,STM32F1为72MHz;使用HSI时,GD32F1最高108MHz,STM32F1最高64MHz。主频更高意味着代码运行速度更快,适合刷屏、开方运算、电机控制等场景。

GD32F1的功耗比STM32F1低吗?

在相同主频下,GD32F1的运行功耗比STM32F1小,因为其内核电压为1.2V,低于STM32F1的1.8V。但在相同设置下,GD32F1的停机模式、待机模式和睡眠模式功耗比STM32F1高。

GD32F1的Flash和STM32F1的Flash有什么不同?

GD32F1的Flash是自主研发的,支持零等待周期执行程序;但擦除时间较长,官方数据为Page Erase典型值100ms(实际约60ms),而STM32F1的Page Erase典型值为20~40ms。

GD32F1在串口通信上与STM32F1有什么差异?

GD32F1在连续发送数据时,每两个字节之间会多出一个Bit的空闲位(Idle),而STM32F1没有这个空闲位。

GD32F1的ADC输入阻抗和STM32F1相比如何?

在相同配置下,GD32F1的ADC输入阻抗相对STM32F1较小。具体阻抗与采样时间的关系需参考数据表(例如主频72M、ADC时钟14M时的对应关系)。

GD32F1哪些型号带有FSMC接口?

GD32F1所有100脚或100脚以上的封装都带有FSMC接口;而STM32F1只有100脚以上的大容量(256K及以上)型号才带FSMC。

🏷️

标签

➡️

继续阅读