由于有些国产芯片具有一定兼容性,在一些利用外设资源比较少,功能大略的小项目中,可能软硬件都不用修正,就能做到“无缝更换”。
于是,涌现了国产芯片兼容芯片,乃至有网友吹嘘国产32能100%兼容STM32芯片的。。。
嵌入式专栏

1
海内芯片兼容STM32的情形
现在绝大部分地方都涌现缺芯的情形,特殊是国外的一些需求量很大的MCU芯片。这个时候,国产芯片也是有一种选择。
目前STM32在海内的替代方案有很多,包括软硬件的兼容性也很高。
比如:GD32(兆易创新)、MM32(灵动微电子)、HK32(航顺电子)、HC32(华大半导体)、CKS32(中科芯)、APM32等一些可能大家之前不理解,也没有听说过的MCU,现在也开始逐步火热起来了。
国产32位MCU对STM32兼容性较高,且大众一点的MCU该当算GD32了。我知道GD32比较早,兆易创新在2013年推出了第一款Cortex-M内核的MUC(GD32F1),我在2014年就开始理解GD32了,那个时候看到兼容STM32,也是惊呆了。。。
海内其他32位的MCU芯片,很多也类似GD32,对STM32具有一定的兼容性。确实有些小项目,能做到“无缝更换”,但并不代表这些国产芯片就能做到100%兼容。
要做到100%兼容,实在很难,纵然是STM32自己做兼容芯片,也是存在差异。
比如之前给大家分享过一篇文章《通过多张图理解STM32产品特性和兼容性》就描述了STM32跨系列的兼容性内容,实在也不是100%兼容,有很多地方也存在差异,比如硬件设计时,VCAP和VSS的差异:
从这里也能看到,做到100%兼容很难。
嵌入式专栏
2
GD32并非完备兼容STM32
虽然大家都说GD32高度兼容STM32,但GD32还是有很多地方与STM32有差异。
包括我之前也给大家分享过STM32F1和GD32F1有很多差异的文章,个中解释了一些地方存在差异。
包括内核、主频、供电、Flash、功耗、串口、ADC、FSMC、RAM&FLASH大小等很多外设资源:
除了相对普遍一点的GD32,像MM32、HK32等其他32位国产MCU也类似,有一些明显差异,大家利用时须要把稳看下差异。
嵌入式专栏
3
GD32兼容STM32方案
踩过坑的人都知道,GD32与STM32看似高度兼容,实际有很多地方须要把稳,在实际项目中,须要为了兼容找到一些办理方案。
这里分享一份网友整理的内容,GD32兼容STM32常见的办理办法,比如: