新焊接的板卡,测试8M晶振不起,网上查原因:空的STM32外部晶振不起,烧写程序后会起。
参考:
http://www.openedv.com/posts/list/36355.htm
http://www.classnotes.cn/3742.html
靠谱解释:
修改stm32f10x.h文件中 HSE_STARTUP_TIMEOUT 的值,默认的0x0500改大一点,我直接改为0xffff,测试可以通过。
这个参数是启动中设置时钟用到,作用是等待外部晶振稳定,等待超过这个值外部晶振还没有稳定,就启用内部PLL时钟,所以把这个值加大,多等待一段时间,其实都是us级别,对时间要求不是特别高可以使用,稳定之后还是72m。
原因分析:不确定是不是晶振的质量问题,还是stm32的差异,或者买到了假的stm32,因为之前GD32就需要修改这个参数