记录录程序单片机锁死的一种原因
以stm32f407录正点原子例程为例,记录问题
问题描述:
可以下载一次程序,下载完成后板子不运行且无法再次下载程序,mdk中debag可以检测到单片机
原因:
按照计算公式来说最大频率配出来是168M,但是我们的板子在硬件上选择的是25M来配PLL,所以综合实际硬件和公式,分频器M=8,倍频器倍频系数N=336,配出来的PLL频率应该是:PLL=25M*336/(8*2)=525M。显然大了将近3倍。频率太高承受不住,出于保护锁死。
正确的应该是PLL=25M*336/(25*2)=168M
不同的商家板子上晶振的频率不相同,有些8M有些25M,程序中频率设置不合适导致板子超频保护
解决:
system_stm32f4xx.c中PLL_M改为25(你自己板子上的晶振频率)
stm32f4xx.h中HSE_VALUE改为25000000
解锁方法:
boot0引脚接高电平然后下载正确的程序,boot0引脚再恢复低电平