作者 | strongerHuang
微信公众号 | 嵌入式专栏

国外MCU涨价的情况大家都看到了,适当涨价都还好,交货周期才是一个大问题,有些芯片交货周期出现超过一年的情况了。然后,很多人就开始转向国内芯片了。
因为有些国产芯片具有一定兼容性,在一些使用外设资源比较少,功能简单的小项目中,可能软硬件都不用修改,就能做到“无缝替换”。
于是,出现了国产**芯片兼容**芯片,甚至有网友吹嘘国产**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的差异:
1.jpg 2.jpg
从这里也能看到,做到100%兼容很难。

2
GD32并非完全兼容STM32



虽然大家都说GD32高度兼容STM32,但GD32还是有很多地方与STM32有区别。

包括我之前也给大家分享过STM32F1和GD32F1有很多区别的文章,其中说明了一些地方存在差异。

包括内核、主频、供电、Flash、功耗、串口、ADC、FSMC、RAM&FLASH大小等很多外设资源:
3.png
除了相对普遍一点的GD32,像MM32、HK32等其他32位国产MCU也类似,有一些明显差异,大家使用时需要注意看下区别。

3
GD32兼容STM32方案


踩过坑的人都知道,GD32与STM32看似高度兼容,实际有很多地方需要注意,在实际项目中,需要为了兼容找到一些解决方案。

这里分享一份网友整理的内容,GD32兼容STM32常见的解决办法,比如:
4.png 5.png 6.png
由于篇幅有限,有需要这份PDF文档可以后台回复“GD32兼容方案”获取下载链接。

说明:
1.该PDF仅供个人学习使用;
2.临时链接,后面将会失效;

4
最后


国产MCU目前可以作为一种选择,但是,即便高度兼容,在实际项目中,也是需要注意很多细节差异。

特别是在原有项目上替换国产32位MCU的时候,尽量多测试,尽量多测试,尽量多测试。

最后,再次强调一遍,国产**32能100%兼容STM32都是骗人的鬼话,你信了,你就输了。