Author:果果小師弟 電子資訊專業在讀研究所學生
有一點思考,有一點想法,有一點理性!
定個小小目标,努力成為習慣!在最美的年華遇見更好的自己!
[email protected]果果小師弟,CSDN首發,果果原創
個人首頁的位址為: 👉 果果小師弟的個人小站 👈
市面常見的STM32核心闆有很多,以STM32F103c8t6核心闆為例,實物如下圖:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiIXZ05WZj91YpB3In5GcuETN5IzN1UTM1IDMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
在核心闆的使用過程中,常見的問題是隻能通過SWD方式下載下傳1次程式,第2次便會報錯,提示找不到處理器。
簡單的解決辦法是:
調整BOOT0/1,使用序列槽ISP全片擦除,再恢複BOOT,重新上電即可下載下傳;
調整BOOT0/1,按Reset,使用SWD下載下傳,還原BOOT0/1;
有些闆子也可以通過持續按住reset鍵實作下載下傳。
但上述并不是我們想要的。具體是哪裡出了問題呢?
真正的解決辦法是:
在使用STM32CubeMX生成項目工程時,需要關注一項系統配置,設定好Debug模式,此時可以看到,右側的晶片GPIO預覽圖,增加了SWDIO和SWCLK的訓示。
此時再用keil打開新生成的工程,即可無限次下載下傳和Debug了。
設定了SYS的Debug模式為Serial Wire模式,到底産生了哪些不同呢?
實際對比,我們發現共有兩處:
- 1 main.c檔案的static void MX_GPIO_Init(void)函數中,增加了
這裡很好了解,因為SWD下載下傳方式用的引腳是PA13和PA14__HAL_RCC_GPIOA_CLK_ENABLE();
- 2.stm32f1xx_hal_msp.c檔案的大概第77行左右,沒有打開“Serial Wire”時,該行是
,打開了“Serial Wire”是,該行是__HAL_AFIO_REMAP_SWJ_DISABLE();
。__HAL_AFIO_REMAP_SWJ_NOJTAG();
綜上所述,完全可以再不用重新配置CubeMX的情況下,通過修改上述兩處代碼,解決隻能下載下傳一次的問題。
好書不厭百回讀,熟讀自知其中意。将學習成為習慣,用知識改變命運,用部落格見證成長,用行動證明努力。
如果我的部落格對你有幫助、如果你喜歡我的部落格内容,請 “點贊” “評論” “收藏” 一鍵三連哦!
聽說 👉 點贊 👈 的人運氣不會太差,每一天都會元氣滿滿呦!^ _ ^ ❤️ ❤️ ❤️
碼字不易,大家的支援就是我堅持下去的動力。點贊後不要忘了👉 關注 👈我哦!
更多精彩内容請前往 果果小師弟的微信公衆号
如果以上内容有任何錯誤或者不準确的地方,歡迎在下面 👇 留個言。或者你有更好的想法,歡迎一起交流學習~~~