天天看點

使用STM32Cube生成的工程在使用JLink下載下傳調試時遇到的問題

最近在學習使用STM32Cube這種比較新的方法來寫STM32程式,但是在剛開始學的時候就遇到了一個讓自己很頭疼的問題,在使用JLink下載下傳程式時,程式能夠燒寫進闆子,但是卻出現一個莫名其妙的警告。

使用STM32Cube生成的工程在使用JLink下載下傳調試時遇到的問題

并且在使用線上調試功能時,點選全速運作,出現一堆錯誤。

使用STM32Cube生成的工程在使用JLink下載下傳調試時遇到的問題

在網上找了許多的解決方案,也有很多遇到類似問題的,但是試了以後都沒有解決,最後自己一步一步的找原因,最後發現在STM32Cube生成的工程中的stm32f1xx_hal_msp.c檔案中的第78行有這樣一行代碼。

/**DISABLE: JTAG-DP Disabled and SW-DP Disabled 
    */
  __HAL_AFIO_REMAP_SWJ_DISABLE();           

這行代碼将SW-DP關閉了,是以我們在仿真的時候程式運作到這裡因為SW-DP被關閉,仿真功能就不能使用了,程式就會執行不下去,是以就報了上面那樣的一堆錯誤。在把這行代碼注釋掉以後問題得到解決。

上面的解決方法是我一步步運作找出來的,歸根結底的原因是在用Cube設計時,要将和SW-DP相關的引腳定義成仿真引腳,這樣Cube生成的代碼就會自動将上面的那行代碼改掉。

使用STM32Cube生成的工程在使用JLink下載下傳調試時遇到的問題

然後在Pinout裡将SYS裡面的Debug設定成Serial Wire,這樣問題得到解決

繼續閱讀