現在用stm32基本是都是使用cubeMX來建立工程了吧,方便快捷。但是cubeMX也有很多坑的,下面來談談用cubeMX建立工程粗心導致ST-link無法下載固件的第一個坑。
第一次下載還好好噠
第二次下載,這是什麼鬼
怎麼辦?壞了嗎,要這麼處理?
別急,教你怎麼處理:
-
把復位腳拉低,然後點擊Download圖標或是F8進行下載,此時應立刻釋放復位腳。(不能拉低不放,否則出現“Core is held in reset”錯誤),這下可以順利下載了吧,別急,不想每次都這樣的話,繼續按下面的步驟來:
-
進入main()函數,找到HAL_Init()函數,並跳轉到其實現處:
-
繼續進入HAL_MspInit()函數,找到原因了嗎,呵呵繼續
-
點擊__HAL_AFIO_REMAP_SWJ_DISABLE();進入
-
把JTAG和SW調試都關閉了,能下載纔會見鬼呢,按需要把__HAL_AFIO_REMAP_SWJ_DISABLE();進行替換,我這裏只用SW調試方式,所以替換爲__HAL_AFIO_REMAP_SWJ_NOJTAG() ;
-
替換函數,然後編譯。注第一次還是要拉低復位腳才能下載,以後直接按download或是F8就可以了。