博客專欄

EEPW首頁 > 博客 > 如何拯救燒錯(cuò)固件的單片機(jī)?(一)

如何拯救燒錯(cuò)固件的單片機(jī)?(一)

發(fā)布人:魚鷹談單片機(jī) 時(shí)間:2021-04-16 來源:工程師 發(fā)布文章

在使用步兵主控開發(fā)板時(shí)(STM32F405RGT6,晶振 25M),使用原子的工程(STM32F4075ZGTx,晶振 8M)的 device 修改成 STM32F405RGT6 和必要的其它修改,程序下載后導(dǎo)致芯片不能繼續(xù)下載,可能的原因是晶振頻率修改錯(cuò)誤,該錯(cuò)誤解決辦法:

將 stm32f4xx.h和 system_stm32f4xx.c 的晶振頻率進(jìn)行修改,如下所示:

1.png2.png

由于步兵主控板芯片晶振頻率為25MHz,所以我們需要把晶振頻率進(jìn)行修改,在這兩個(gè)地方進(jìn)行修改,將8 都改為 25 就可以了,但是如果已經(jīng)導(dǎo)致不能下載程序,出現(xiàn)下面的警告:

3.png4.png

使用以下方法解決(順序很重要):

先將 BOOT0 引腳置高電平,BOOT1 置低電平,然后復(fù)位,最后點(diǎn)擊下載,當(dāng)正在下載時(shí)就可以將 BOOT0 引腳重新置為低電平。目的就是一開始讓芯片進(jìn)入 bootloader 程序,此時(shí)就可以進(jìn)行下載程序了。如果沒有復(fù)位按鍵,那么就可以先將 BOOT0 接入高電平(默認(rèn) BOOT0,BOOT1 一般是通過電阻接低電平的,所以此時(shí)只需將 BOOT0 引出接入高電平),然后上電(相當(dāng)于復(fù)位了),最后點(diǎn)擊下載,當(dāng)程序正在下載時(shí)就可以不接高電平了。

另外一個(gè)方法是使用 keil軟件 flash 菜單的擦除選項(xiàng),首先擦除整個(gè)應(yīng)用程序(擦除的目的是讓單片機(jī)不運(yùn)行錯(cuò)誤的時(shí)鐘配置程序?qū)е鲁鲥e(cuò)),然后點(diǎn)擊下載,前提還是需要修改文件并編譯后才能正常下載,這樣就不需要使用復(fù)位按鍵。

*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: 單片機(jī)

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉