解决STM32无法使用Boot模式清除芯片内容的方法
作为最热门的单片机,意式半导体公司所生产的stm32是很多嵌入式开发的首要选择。在现实开发过程中,由于电路板的限制并不会把所有的引脚全部引出。至于实际的生产制造过程就更不会把boot这样的引脚,引出来供大家使用了。
之所以,会发这么一篇文章,是因为某一个项目里要把stm32f103的代码移植到stm32f407上。忽略了外部晶振的频率,在套用f407的标准库模版时,把8MHZ的高速外部晶振代码写到了25MHZ的板子上。导致invaliddate rom…… 第一时间立马想到修改boot进入系统代码区擦除芯片。
看到这个接地的时候天都塌了。于是想到把外部晶振焊下来,迫使内部晶振起振,还是无济于事。
后来经过一些摸索,发现可以在keil里修改配置通过reset来擦除芯片。
具体步骤如下:
(1)点击魔术棒
(2)Debug
(3)选择在reset模式下写入
(4)选择擦除整个芯片
(5)最玄学的一步来了:在烧录前按住reset然后点击烧录,一定要在进度条差不多跑完的时候松手,大概在1s左右。这个时机一定要把握好,可以多试几次。
最后,标准库已经是一个老古董了。stm公司不在对其进行维护,hal库的优势更加明显,再有cubmx的加持,能让你的开发工作变得飞快!并且配置文件也轻松很多。就靠这keil的一个小花招,就剩下了小一千块钱,还是十分满意的!
作者:波波巴巴