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

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

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

STM32的調(diào)試方式、更新程序、仿真以及補(bǔ)救措施

貿(mào)澤電子設(shè)計(jì)圈 ? 2018-01-17 14:55 ? 次閱讀

最近有一個(gè)項(xiàng)目用到了STM32F103RB系列單片機(jī),由于引腳數(shù)量較少,不得不使用到了單片機(jī)的PB3和PB4兩個(gè)引腳。而這兩個(gè)引腳剛好又是STM32系列的JTAG調(diào)試引腳,如果要用于普通IO的功能需要先進(jìn)行一定的設(shè)置。

1. STM32的調(diào)試方式選擇

STM32支持JTAG和SWD兩種調(diào)試方式,且默認(rèn)狀態(tài)下這兩種調(diào)試功能都是開啟的。

STM32的調(diào)試方式、更新程序、仿真以及補(bǔ)救措施

由此我們可以知道:

如果要使用JTAG調(diào)試功能,那么PB3,PB4,PA13,PA14,PA15都不能使用;

而如果我們關(guān)閉JTAG功能,但是開啟SWD調(diào)試功能,那么PB3,PB4,PA15都可以當(dāng)作普通IO來(lái)使用了;

ST官方3.5的庫(kù)有提供關(guān)閉調(diào)試功能的兩個(gè)接口

1.1 關(guān)閉所有的JTAG和SWD調(diào)試功能

慎用,一旦執(zhí)行該命令,程序運(yùn)行后將不能通過JTAG或SWD方法進(jìn)行燒寫和下載,補(bǔ)救措施見文末。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);

GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);

執(zhí)行上面語(yǔ)句后,PB3,PB4,PA13,PA14,PA15都可以當(dāng)作普通iO來(lái)使用,此時(shí)不能通過J-Link進(jìn)行調(diào)試了;

1.2 僅關(guān)閉JTAG調(diào)試功能

該方法的好處是,解放了JTAG功能占用的引腳,但是SWD調(diào)試功能依舊可以使用。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);

GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

執(zhí)行上面語(yǔ)句后,PB3,PB4,PA15都可以當(dāng)作普通iO來(lái)使用,且可以通過SWD進(jìn)行調(diào)試。

2. 關(guān)閉JTAG和SWD調(diào)試方式后如何更新程序以及仿真

2.1 關(guān)閉JTAG如何更新程序

關(guān)閉JTAG調(diào)試功能以后,STM32不再支持在線仿真,且更新程序也需要通過一定操作才可以完成。此方法在開發(fā)階段慎用!

建議程序啟動(dòng)時(shí)延時(shí)3-5秒后再關(guān)閉JTAG調(diào)試模式,如此,單片機(jī)斷電復(fù)位后立即點(diǎn)擊燒寫按鈕也是可以進(jìn)行程序燒錄的。

2.2 關(guān)閉JTAG及SWD調(diào)試功能后的補(bǔ)救措施

補(bǔ)救措施一:

設(shè)置啟動(dòng)模式為ISP模式(BOOT0=1、BOOT1=0)或設(shè)置啟動(dòng)模式為RAM運(yùn)行模式(BOOT0=1、BOOT1=1)。

將開發(fā)板斷電后重新上電,此時(shí)就因不是在用戶程序模式,因此就不會(huì)執(zhí)行禁用JTAG的語(yǔ)句,JTAG功能也就可以正常使用。

補(bǔ)救措施二:

設(shè)置啟動(dòng)模式為ISP模式(BOOT0=1、BOOT1=0),用ISP程序?qū)TM32的FLASH擦除,之后就可恢復(fù)JTAG功能。

補(bǔ)救措施三:

如果你的仿真器支持SWD仿真模式,如IAR下用JLINK、MDK下用ULINK2。直接將仿真器的模式設(shè)為SWD模,就可以不受這個(gè)禁止JTAG功能的影響了。

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

    關(guān)注

    2270

    文章

    10900

    瀏覽量

    356087
  • SWD
    SWD
    +關(guān)注

    關(guān)注

    1

    文章

    57

    瀏覽量

    11844
  • atag
    +關(guān)注

    關(guān)注

    0

    文章

    1

    瀏覽量

    2555

原文標(biāo)題:將STM32的調(diào)試口設(shè)置為普通IO口,你掌握了嗎?

文章出處:【微信號(hào):Mouser-Community,微信公眾號(hào):貿(mào)澤電子設(shè)計(jì)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32調(diào)試方式、更新程序仿真以及補(bǔ)救措施

    STM32調(diào)試方式、更新程序仿真以及
    發(fā)表于 07-04 07:27

    STM32編譯開發(fā)環(huán)境及仿真調(diào)試篇-----野馬學(xué)習(xí)筆記

    STM32編譯開發(fā)環(huán)境及仿真調(diào)試篇-----野馬學(xué)習(xí)筆記
    發(fā)表于 10-27 09:13 ?26次下載
    <b class='flag-5'>STM32</b>編譯開發(fā)環(huán)境及<b class='flag-5'>仿真</b><b class='flag-5'>調(diào)試</b>篇-----野馬學(xué)習(xí)筆記

    基于IAP的STM32程序更新技術(shù)

    提供和開放了用戶更新程序的接口與方式,以提高整個(gè)系統(tǒng)的可靠性和可維護(hù)性。ST公司基于CortexM3內(nèi)核的STM32系列產(chǎn)品得到了廣泛應(yīng)用,在許多基于
    發(fā)表于 11-30 04:53 ?588次閱讀
     基于IAP的<b class='flag-5'>STM32</b><b class='flag-5'>程序</b><b class='flag-5'>更新</b>技術(shù)

    STM32調(diào)試實(shí)例的項(xiàng)目程序庫(kù)和調(diào)試實(shí)例資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是STM32調(diào)試實(shí)例的項(xiàng)目程序庫(kù)和調(diào)試實(shí)例資料合集免費(fèi)下載
    發(fā)表于 08-30 15:07 ?94次下載

    邊緣計(jì)算的風(fēng)險(xiǎn)及其補(bǔ)救措施

    如今,每個(gè)人都知道計(jì)算和網(wǎng)絡(luò)會(huì)帶來(lái)安全風(fēng)險(xiǎn),而新的風(fēng)險(xiǎn)伴隨著新的計(jì)算技術(shù)而出現(xiàn)。邊緣計(jì)算也是如此。因?yàn)閷?duì)于大多數(shù)組織來(lái)說,它代表了IT模式的相當(dāng)大的轉(zhuǎn)變,邊緣計(jì)算設(shè)施面臨的安全風(fēng)險(xiǎn)可能十分嚴(yán)重。因此,了解這些風(fēng)險(xiǎn)及其補(bǔ)救措施對(duì)于確保業(yè)務(wù)運(yùn)營(yíng)的順利進(jìn)行至關(guān)重要。
    的頭像 發(fā)表于 10-19 14:55 ?2691次閱讀

    微軟Microsoft Defender 將默認(rèn)全自動(dòng)執(zhí)行補(bǔ)救措施

    微軟:Microsoft Defender 將默認(rèn)全自動(dòng)執(zhí)行補(bǔ)救措施,微軟,defender
    的頭像 發(fā)表于 02-20 16:05 ?1359次閱讀
    微軟Microsoft Defender 將默認(rèn)全自動(dòng)執(zhí)行<b class='flag-5'>補(bǔ)救措施</b>

    STM32簡(jiǎn)單程序編譯及Proteus程序設(shè)計(jì)與仿真

    該文章主要介紹在MDK5上進(jìn)行STM32設(shè)計(jì)跑馬燈程序并進(jìn)行編譯;以及基于51單片機(jī)進(jìn)行交通信號(hào)燈的程序設(shè)計(jì)之后對(duì)其進(jìn)行Proteus軟件仿真
    發(fā)表于 11-17 18:06 ?75次下載
    <b class='flag-5'>STM32</b>簡(jiǎn)單<b class='flag-5'>程序</b>編譯及Proteus<b class='flag-5'>程序</b>設(shè)計(jì)與<b class='flag-5'>仿真</b>

    stm32簡(jiǎn)單程序編譯及完成51程序設(shè)計(jì)與仿真

    stm32簡(jiǎn)單程序編譯及完成51程序設(shè)計(jì)與仿真
    發(fā)表于 11-21 16:36 ?3次下載
    <b class='flag-5'>stm32</b>簡(jiǎn)單<b class='flag-5'>程序</b>編譯及完成51<b class='flag-5'>程序</b>設(shè)計(jì)與<b class='flag-5'>仿真</b>

    MDK開發(fā)環(huán)境下STM32的簡(jiǎn)單程序的編譯以及一個(gè)89C51程序設(shè)計(jì)和仿真

    MDK開發(fā)環(huán)境下STM32的簡(jiǎn)單程序的編譯以及一個(gè)89C51程序設(shè)計(jì)和仿真
    發(fā)表于 11-25 14:06 ?13次下載
    MDK開發(fā)環(huán)境下<b class='flag-5'>STM32</b>的簡(jiǎn)單<b class='flag-5'>程序</b>的編譯<b class='flag-5'>以及</b>一個(gè)89C51<b class='flag-5'>程序</b>設(shè)計(jì)和<b class='flag-5'>仿真</b>

    熟悉MDK,stm32的簡(jiǎn)單程序編譯,以及用proteus進(jìn)行51程序設(shè)計(jì)和仿真

    MDK環(huán)境下stm32的簡(jiǎn)單程序編譯以及用proteus進(jìn)行51程序設(shè)計(jì)和仿真ARM開發(fā)環(huán)境入門MDK環(huán)境下
    發(fā)表于 12-04 20:51 ?15次下載
    熟悉MDK,<b class='flag-5'>stm32</b>的簡(jiǎn)單<b class='flag-5'>程序</b>編譯,<b class='flag-5'>以及</b>用proteus進(jìn)行51<b class='flag-5'>程序</b>設(shè)計(jì)和<b class='flag-5'>仿真</b>

    stm32cubeMX+vscode開發(fā)編譯調(diào)試stm32程序

    stm32cubeMX+vscode開發(fā)編譯調(diào)試stm32程序安裝vscode安裝make工具安裝交叉編譯工具鏈安裝openocd安裝clang llvm生成并編譯代碼配置vscode
    發(fā)表于 12-24 19:31 ?6次下載
    <b class='flag-5'>stm32</b>cubeMX+vscode開發(fā)編譯<b class='flag-5'>調(diào)試</b><b class='flag-5'>stm32</b><b class='flag-5'>程序</b>

    mdk5軟件和stm32包的安裝以及stm32程序“LED閃爍”調(diào)試,用Proteus仿真一個(gè)51程序設(shè)計(jì)和仿真

    mdk5軟件和stm32包的安裝以及stm32程序“LED閃爍”調(diào)試,用Proteus仿真一個(gè)5
    發(fā)表于 01-13 12:41 ?10次下載
    mdk5軟件和<b class='flag-5'>stm32</b>包的安裝<b class='flag-5'>以及</b><b class='flag-5'>stm32</b><b class='flag-5'>程序</b>“LED閃爍”<b class='flag-5'>調(diào)試</b>,用Proteus<b class='flag-5'>仿真</b>一個(gè)51<b class='flag-5'>程序</b>設(shè)計(jì)和<b class='flag-5'>仿真</b>

    電纜故障現(xiàn)場(chǎng)修補(bǔ)措施

    電纜很多時(shí)候一遇到故障就特別麻煩,在此給大家介紹如果發(fā)生在電纜現(xiàn)場(chǎng)如何補(bǔ)救措施。
    發(fā)表于 03-29 11:55 ?1552次閱讀

    錘式破碎機(jī)軸徑磨損的的補(bǔ)救方法

    錘式破碎機(jī)軸徑磨損的緊急補(bǔ)救措施
    發(fā)表于 07-13 16:15 ?0次下載

    基于矩陣變換器驅(qū)動(dòng)的PMSM容錯(cuò)補(bǔ)救措施

    電子發(fā)燒友網(wǎng)站提供《基于矩陣變換器驅(qū)動(dòng)的PMSM容錯(cuò)補(bǔ)救措施.pdf》資料免費(fèi)下載
    發(fā)表于 10-09 15:35 ?0次下載
    基于矩陣變換器驅(qū)動(dòng)的PMSM容錯(cuò)<b class='flag-5'>補(bǔ)救措施</b>