由于STM32F103ZET6和APM32F103ZET6工艺节点和设计思路有差别,自然就会有一些地方是有差异的,比如时钟差异
1、温度、电压的环境引起HSI的精度差异
1、温度、电压的环境引起HSI的精度差异
APM32的主频标称为96MHz,STM32的主频标称为72MHz;在高低温情况下,HSI作为时钟源时,APM32的时钟精度在(-2.8~2.4)%,但STM32的时钟精度在(-2.0~2.5)%,比APM32略高。
如果使用HSI作为系统时钟,且对精度要求较高、使用场景是;如果使用场景是3.3V的工作电压,且温度为25℃时,出厂精度都是±1%。
2、 HSE起振时间差异引起系统时钟配置存在差异
在使用晶振作为HSE的时钟源时,APM32F103和STM32F103的起振温度时间存在差异,STM32F103起振稳定时间比APM32F103的快。
代码中判断是否起振稳定的方式是使用软件延时等待,设置的HSE_STARTUP_TIMEOUT数值是0x500,参考代码如下:
当晶振离开MCU的晶振连接引脚较远,或者匹配电容不合理,或者使用贴片晶振而不是直插晶振时,HSE_STARTUP_TIMEOUT的等待稳定时间不足以使晶振起振,会出现无法起振的情况,导致系统时钟为HSI的8MHz。
3、代码运行的速率差异,也会影响软件延时等待的实际时间。
解决方法是调大HSE_STARTUP_TIMEOUT,例如设置HSE_STARTUP_TIMEOUT为0x5000
Geehy极海半导体APM32F103ZET6和STM32F103ZET6以及STM32F103VET6在时钟精度上的差异可以通过软件调整来弥补。