问题描述
刚刚上手STM32不久遇到一个烧录问题
使用HAL固件库编程了一个LED闪烁程序,成功烧录以后更改了程序要重新烧录,编译不报错但是download失败并且提示Error:Flash Timeout.Reset the Target and try it again.又提示Error:Flash Download failed -“Cortex-M3”。
这种情况一般是因为STM32的Boot引脚设置成了BOOT0和BOOT1均为低电平0,而boot0管脚拉高或拉低都不能从系统存储区(system flash)启动(即进入bootloader状态)。芯片刚开始启动会检查main flash区有没有代码,要是0x08000000没有代码,就进入bootloader状态,要是有代码就从main flash区运行。所以在烧录一次并运行程序以后,芯片检测到主闪存区已经存在代码,就自动从main flash区运行,此时不允许FLASH区进行更改download失败。