2022年4月19日 星期二

STM32G 的 BOOT0 如何當 GPIO 用?

這個問題困擾我很久

以前的BOOT0是獨立功能腳

新MCU把BOOT0也規劃成IO腳

本來只要加個100K的電阻拉到地就能使用

可是因為腳位有限,規劃了I2C必須提升到HIGH

這就造成MCU無法正確開機

怎麼辦?


USER MANUAL中第110頁有提到解法



根據USER MANUAL的說法,如果要使用BOOT0這隻腳當作開機區的判讀

必須將 nSWBOOT0 設為 1

如果設為 的話,則由內部的 nBOOT0 來決定

再從第90頁的說明


我們發現必須將 nSWBOOT0 設為 0 nBOOT0 設為 1

才會等同於 BOOT0 腳拉到地的設定

那該如何將這兩個暫存器的資料進行修改呢?


相信大家對STM32CubeProgrammer並不陌生,我所使用的版本是 v2.8.0

首先用ST-LINK先對MCU進行連線,在右上角可以看到連線成功的訊息

接著在左方的功能選單中點選OB (Option bytes)

可以看到第三列的 User Configuration 裡有 nSWBOOT0nBOOT0 的選項

照著圖片中的勾選方式進行勾選,並在右下角點選 Apply

再將您的程式碼燒錄到 MCU 中就大功告成了