原因分析
考虑到用户的量很大,而且问题都是出现在低温的环境下,所以基本排除用户单板设计,布线等问题,
但是 bootloader 代码也非常的成熟,大量的被用户使用,所以软件问题也被排除,所以将问题的原因
定位在环境温度低造成的,而温度低会对哪些外设 产生影响呢,查阅任何一款 MCU 的数据手册 HIS
部分的参数, 都可以发现:
从这张表中可以看出,当温度低于-10℃时, HSI 的准确性会降低很多, 误差变得相当大,
而熟悉 STM32 的工程师可能会有疑问, STM32 的 USB 模块需要非常精准的 48MHz 时钟,所以一般
时钟 HSE 作为其时钟源进行倍频和分频,为什么 HSI 低温时误差大会对其造成影响呢?
这里就要重新回到 bootloader 中来,虽然这一部分代码并非开源的,是芯片出厂后就固化到 MCU 里面
的
|