0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32F1系列DEBUG調(diào)試功能需要配置嗎?

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 作者:黃工的嵌入式技術(shù) ? 2020-03-01 13:57 ? 次閱讀

使用STM32CubeMX,配置STM32F1時關(guān)于DEBUG的問題,后臺問的較多,就寫一下相關(guān)內(nèi)容。

1寫在前面

STM32CubeMX的好處相信大部分朋友都知道,那就是幫你快速生成初始化代碼工程。

雖然方便了開發(fā),但也給一些初學(xué)者,或者不怎么懂底層的朋友帶來了不少困擾。

特別是使用該工具生成代碼,出現(xiàn)問題的時候,如果你不懂一些底層的知識,可能你會很頭疼。

本文關(guān)于DEBUG配置的問題,針對初學(xué)者,我也把前因后果簡單說一下。

2起因

STM32CubeMX配置STM32F1系列MCU時,第一次能下載成功,但第二次,會出現(xiàn)如下錯誤:

這是什么錯誤?

沒有連接到目標,也就是你的下載器(ST-LInk)是正常的,只是沒有識別到你MCU。

這里推薦閱讀專欄文章:ST-Link資料

3分析原因

可能很多初學(xué)者看到這個錯誤,第一反應(yīng)是不是下載區(qū)器壞了,或者接線不良等問題。

其實不然,直接原因是STM32CubeMX這個工具初始化的代碼,失能了DEBUG功能,也就是與ST-Link連接的SWCLK、SWDIO引腳不能作為DEBUG功能了。

STM32CubeMX默認配置:

調(diào)用代碼HAL_AFIO_REMAP_SWJ_DISABLE:

進一步分享,直到深入底層:

看到這里,相信大家都明白其中原因了。

但是,新的問題:為什么配置STM32其它系列(如STM32F4)不會出現(xiàn)在這個問題呢?

其實也是需要通過分析底層,答案就是STM32F1系列關(guān)于AFIO的控制器和其它系列有一定差異。

其它系列是通過一個系統(tǒng)配置控制器 (SYSCFG)來實現(xiàn)一些特殊功能,沒有關(guān)于DBUGE的SWJ-CFG幾個位(上圖)。

4出現(xiàn)不能下載,怎么解決?

如果出現(xiàn)文中說的,第一次下載之后,連接失敗,解決的辦法很多,這里列幾點常見方法。

1.STM32CubeMX配置成對應(yīng)模式

比如你下載器的S-Link,配置成SWD模式:

2.復(fù)位之后立刻連接

使用J-link帶復(fù)位引腳模式

按著復(fù)位鍵->連接 ->釋放復(fù)位鍵

3.使用串口下載

有兩種方式:

啟動內(nèi)嵌Boot,使用串口下載,請參看文章《STM32自舉程序,你了解多少?》

IAP功能,有一段Bootloader程序,通過串口更新應(yīng)用程序。

5拓展

STM32部分型號MCU不帶JATG功能,比如STM32F0、STM32G0等。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16796

    瀏覽量

    349325
  • DEBUG
    +關(guān)注

    關(guān)注

    3

    文章

    89

    瀏覽量

    19808
  • stm32cubemx
    +關(guān)注

    關(guān)注

    5

    文章

    280

    瀏覽量

    14682
收藏 人收藏

    評論

    相關(guān)推薦

    使用STM32F1輸入捕獲功能時,TIM6和TIM7無法實現(xiàn)輸入捕獲是哪里的問題?

    使用STM32F1輸入捕獲功能時,TIM6和TIM7無法實現(xiàn)輸入捕獲,是芯片問題嗎?在配置STM32F1的TIM6和TIM7定時器時,發(fā)現(xiàn)無法進行輸入捕獲,是否因為芯片
    發(fā)表于 09-27 09:11

    開發(fā)攻略之STM32調(diào)試端口的映射

    最近有一個項目用到了STM32F103RB系列單片機,由于引腳數(shù)量較少,不得不使用到了單片機的PB3和PB4兩個引腳。而這兩個引腳剛好又是STM32系列的JTAG
    的頭像 發(fā)表于 08-03 08:11 ?290次閱讀
    開發(fā)攻略之<b class='flag-5'>STM32</b><b class='flag-5'>調(diào)試</b>端口的映射

    如何使用STM32F1控制ESP8266?

    如何使用STM32F1控制ESP8266?
    發(fā)表于 07-09 06:21

    自制一款兼容STM32F1/F4芯片的飛控板

    自己制作的一款兼容STM32F1/F4芯片的飛控板。
    發(fā)表于 07-04 14:07 ?0次下載

    STM32F1 IAP操作讀保護選項字節(jié)設(shè)置,APP使用系統(tǒng)復(fù)位跳轉(zhuǎn)后無法運行IAP的原因?

    最近調(diào)試一個程序,是基于STM32F1做的IAP,升級前后需要修改選項字節(jié),F(xiàn)LASH_EraseOptionBytes函數(shù)內(nèi)OB->RDP=RDP_Key語句實現(xiàn)讀保護的解除,如果我
    發(fā)表于 05-13 08:09

    STM32F1內(nèi)部ADC的DUAL MODE的使用問題求解

    我想利用STM32F1內(nèi)部的ADC采集四路電壓值,因為要求同時采集,所以我使用了ADC的DUAL MODE,可是由于始終未能讀明白芯片手冊!ADC的設(shè)置與DMA的設(shè)置基本上參考STM32F1提供
    發(fā)表于 05-09 06:51

    STM32F1改用STM32F2或STM32F4芯片后,發(fā)現(xiàn)芯片根本不能正常工作怎么解決?

    曾有工程師反映,之前用STM32F1系列芯片好好的,后來因為產(chǎn)品需要,改用STM32F2或STM32F4芯片后,發(fā)現(xiàn)芯片根本不能正常工作,即
    發(fā)表于 04-08 06:45

    STM32f1怎么判斷引起CAN發(fā)送中斷的ID是哪個?

    STM32f1怎么判斷引起CAN發(fā)送中斷的ID是哪個
    發(fā)表于 04-03 07:46

    STM32F1的LL庫,RTC怎么不能設(shè)置日期?

    STM32F1的LL庫,RTC 怎么不能設(shè)置日期,只能設(shè)置時間。
    發(fā)表于 03-29 07:02

    能用stm32h7為主做絕大部分的功能實現(xiàn),用stm32f1為輔實現(xiàn)一個小功能嗎?

    請問能用stm32h7為主做絕大部分的功能實現(xiàn),用stm32f1為輔實現(xiàn)一個小功能嗎?
    發(fā)表于 03-20 07:09

    請問如何快速移植stm32f1的程序到STM32C0中?

    如何快速移植stm32f1的程序到STM32C0中?
    發(fā)表于 03-08 06:54

    STM32H750 PB3、PB4、PB5配置成SPI功能需要額外處理JTAG功能嗎?

    STM32H750 PB3、PB4、PB5配置成SPI功能需要額外關(guān)閉JTAG功能嗎。調(diào)試選擇了
    發(fā)表于 03-07 07:03

    stm32f1如何將外部中斷關(guān)掉hal庫

    Layer)來簡化芯片和外設(shè)的驅(qū)動開發(fā)。在STM32F1中,外部中斷的關(guān)閉是通過HAL庫中的相應(yīng)函數(shù)來實現(xiàn)的。下面我將詳細介紹如何使用HAL庫關(guān)閉外部中斷。 引入必要的頭文件 要使用外部中斷功能,首先需要
    的頭像 發(fā)表于 12-22 13:52 ?2904次閱讀

    STM32F1系列單脈沖模式下最小脈寬為多少?

    在微控制器領(lǐng)域,STM32F1系列是一款非常流行的產(chǎn)品,廣泛應(yīng)用于各種嵌入式系統(tǒng)設(shè)計。
    的頭像 發(fā)表于 12-13 09:58 ?790次閱讀

    STM32WB55開發(fā)(4)----配置串口打印Debug調(diào)試信息

    STM32WB55系列微控制器上進行開發(fā)時,實時監(jiān)控應(yīng)用程序的運行情況和調(diào)試潛在問題是至關(guān)重要的。使用串口(USART/UART)進行Debug信息打印是一種簡便、高效的方法。下面是
    的頭像 發(fā)表于 12-01 15:48 ?1093次閱讀
    <b class='flag-5'>STM32</b>WB55開發(fā)(4)----<b class='flag-5'>配置</b>串口打印<b class='flag-5'>Debug</b><b class='flag-5'>調(diào)試</b>信息