解决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的一个小花招,就剩下了小一千块钱,还是十分满意的!

作者:波波巴巴

物联沃分享整理
物联沃-IOTWORD物联网 » 解决STM32无法使用Boot模式清除芯片内容的方法

发表回复