這個問題困擾我很久
以前的BOOT0是獨立功能腳
新MCU把BOOT0也規劃成IO腳
本來只要加個100K的電阻拉到地就能使用
可是因為腳位有限,規劃了I2C必須提升到HIGH
這就造成MCU無法正確開機
怎麼辦?
在USER MANUAL中第110頁有提到解法
必須將 nSWBOOT0 設為 1
如果設為 0 的話,則由內部的 nBOOT0 來決定
再從第90頁的說明
我們發現必須將 nSWBOOT0 設為 0 及 nBOOT0 設為 1
才會等同於 BOOT0 腳拉到地的設定
那該如何將這兩個暫存器的資料進行修改呢?
相信大家對STM32CubeProgrammer並不陌生,我所使用的版本是 v2.8.0
首先用ST-LINK先對MCU進行連線,在右上角可以看到連線成功的訊息
接著在左方的功能選單中點選OB (Option bytes)
可以看到第三列的 User Configuration 裡有 nSWBOOT0 及 nBOOT0 的選項
照著圖片中的勾選方式進行勾選,並在右下角點選 Apply
再將您的程式碼燒錄到 MCU 中就大功告成了