使用STM32CubeMX,配置STM32F1時(shí)關(guān)于DEBUG的問(wèn)題,后臺(tái)問(wèn)的較多,就寫(xiě)一下相關(guān)內(nèi)容。
1寫(xiě)在前面
STM32CubeMX的好處相信大部分朋友都知道,那就是幫你快速生成初始化代碼工程。
雖然方便了開(kāi)發(fā),但也給一些初學(xué)者,或者不怎么懂底層的朋友帶來(lái)了不少困擾。
特別是使用該工具生成代碼,出現(xiàn)問(wèn)題的時(shí)候,如果你不懂一些底層的知識(shí),可能你會(huì)很頭疼。
本文關(guān)于DEBUG配置的問(wèn)題,針對(duì)初學(xué)者,我也把前因后果簡(jiǎn)單說(shuō)一下。
2起因
STM32CubeMX配置STM32F1系列MCU時(shí),第一次能下載成功,但第二次,會(huì)出現(xiàn)如下錯(cuò)誤:
這是什么錯(cuò)誤?
沒(méi)有連接到目標(biāo),也就是你的下載器(ST-LInk)是正常的,只是沒(méi)有識(shí)別到你MCU。
這里推薦閱讀專欄文章:ST-Link資料
3分析原因
可能很多初學(xué)者看到這個(gè)錯(cuò)誤,第一反應(yīng)是不是下載區(qū)器壞了,或者接線不良等問(wèn)題。
其實(shí)不然,直接原因是STM32CubeMX這個(gè)工具初始化的代碼,失能了DEBUG功能,也就是與ST-Link連接的SWCLK、SWDIO引腳不能作為DEBUG功能了。
STM32CubeMX默認(rèn)配置:
調(diào)用代碼HAL_AFIO_REMAP_SWJ_DISABLE:

進(jìn)一步分享,直到深入底層:

看到這里,相信大家都明白其中原因了。
但是,新的問(wèn)題:為什么配置STM32其它系列(如STM32F4)不會(huì)出現(xiàn)在這個(gè)問(wèn)題呢?
其實(shí)也是需要通過(guò)分析底層,答案就是STM32F1系列關(guān)于AFIO的控制器和其它系列有一定差異。
其它系列是通過(guò)一個(gè)系統(tǒng)配置控制器 (SYSCFG)來(lái)實(shí)現(xiàn)一些特殊功能,沒(méi)有關(guān)于DBUGE的SWJ-CFG幾個(gè)位(上圖)。
4出現(xiàn)不能下載,怎么解決?
如果出現(xiàn)文中說(shuō)的,第一次下載之后,連接失敗,解決的辦法很多,這里列幾點(diǎn)常見(jiàn)方法。
1.STM32CubeMX配置成對(duì)應(yīng)模式
比如你下載器的S-Link,配置成SWD模式:
2.復(fù)位之后立刻連接
使用J-link帶復(fù)位引腳模式
按著復(fù)位鍵->連接 ->釋放復(fù)位鍵
3.使用串口下載
有兩種方式:
啟動(dòng)內(nèi)嵌Boot,使用串口下載,請(qǐng)參看文章《STM32自舉程序,你了解多少?》
IAP功能,有一段Bootloader程序,通過(guò)串口更新應(yīng)用程序。
5拓展
STM32部分型號(hào)MCU不帶JATG功能,比如STM32F0、STM32G0等。
-
mcu
+關(guān)注
關(guān)注
147文章
18917瀏覽量
397870 -
DEBUG
+關(guān)注
關(guān)注
3文章
95瀏覽量
21376 -
stm32cubemx
+關(guān)注
關(guān)注
5文章
290瀏覽量
17352
發(fā)布評(píng)論請(qǐng)先 登錄
STM32 STR750F系列微控制器深度剖析:特性、應(yīng)用與設(shè)計(jì)考量
CW32F030配置GPIO的話,需要像STM32那樣禁用JTAG嗎?
STM32MP257F-EV1評(píng)估板深度解析與技術(shù)應(yīng)用指南
STM32cubeMX生成配置rt-thread引用問(wèn)題求解
制作STM32F1開(kāi)發(fā)板的BSP失敗的原因?
硬件調(diào)試:JLink 驅(qū)動(dòng)配置與調(diào)試技巧
STM32F1系列DEBUG調(diào)試功能需要配置嗎?
評(píng)論