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

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

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

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

朱老師物聯(lián)網(wǎng)大講堂 ? 2024-08-03 08:11 ? 次閱讀

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

一、STM32的調(diào)試方式選擇

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

STM32 IOJTAG IOSWD IO
PB3NC
PB4NC
PA13
PA14
PA15NC

由此我們可以知道:如果要使用JTAG調(diào)試功能,那么PB3,PB4,PA13,PA14,PA15都不能使用;而如果我們關(guān)閉JTAG功能,但是開(kāi)啟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)行后將不能通過(guò)JTAG或SWD方法進(jìn)行燒寫(xiě)和下載,補(bǔ)救措施見(jiàn)文末。

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í)不能通過(guò)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)使用,且可以通過(guò)SWD進(jìn)行調(diào)試。

二、關(guān)閉調(diào)試方式后如何更新程序以及仿真

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

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

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

將開(kāi)發(fā)板斷電后重新上電,此時(shí)就因不是在用戶(hù)程序模式,因此就不會(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)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6030

    文章

    44489

    瀏覽量

    631973
  • STM32
    +關(guān)注

    關(guān)注

    2264

    文章

    10854

    瀏覽量

    354291
  • 引腳
    +關(guān)注

    關(guān)注

    16

    文章

    1172

    瀏覽量

    50150
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA開(kāi)發(fā)攻略

    電子工程師創(chuàng)新設(shè)計(jì)必備寶典系列FPGA開(kāi)發(fā)攻略上,下兩冊(cè)
    發(fā)表于 04-24 21:11

    STM32端口復(fù)用和重映射詳細(xì)步驟有哪些呢

    STM32端口復(fù)用設(shè)置步驟有哪些呢?STM32端口重映射詳細(xì)步驟有哪些呢?
    發(fā)表于 11-17 06:03

    STM32端口復(fù)用映射原理是什么

    STM32端口復(fù)用映射原理是什么?STM32端口復(fù)用配置過(guò)程是怎樣的?
    發(fā)表于 12-15 07:03

    STM32AN2563_STM32F10xxx 調(diào)試應(yīng)用示例資

    STM32AN2563_STM32F10xxx 調(diào)試應(yīng)用示例資料,很好的STM32資料,快來(lái)學(xué)習(xí)吧。
    發(fā)表于 04-26 09:43 ?21次下載

    關(guān)于自動(dòng)端口映射功能實(shí)現(xiàn)步驟和調(diào)試

    接下來(lái),小編就為大家講解如何使用UPnP協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)設(shè)備自動(dòng)配置路由器進(jìn)行端口映射。
    發(fā)表于 09-23 10:00 ?4次下載
    關(guān)于自動(dòng)<b class='flag-5'>端口映射</b>功能實(shí)現(xiàn)步驟和<b class='flag-5'>調(diào)試</b>

    關(guān)于STM32開(kāi)發(fā)工具STM Studio調(diào)試和診斷工具講解

    STM32開(kāi)發(fā)工具STM Studio調(diào)試和診斷工具講解
    的頭像 發(fā)表于 03-01 11:56 ?4935次閱讀

    【MCU】STM32的地址映射和HAL庫(kù)開(kāi)發(fā)基礎(chǔ)

    回顧STM32的內(nèi)存映射機(jī)制
    發(fā)表于 10-28 18:06 ?11次下載
    【MCU】<b class='flag-5'>STM32</b>的地址<b class='flag-5'>映射</b>和HAL庫(kù)<b class='flag-5'>開(kāi)發(fā)</b>基礎(chǔ)

    2、【STM32F0系列學(xué)習(xí)】—通用輸入輸出端口(GPIO)

    STM32F0系列學(xué)習(xí)】—通用輸入輸出端口GPIO1、GPIO端口配置說(shuō)明1、GPIO端口配置說(shuō)明
    發(fā)表于 11-29 16:51 ?66次下載
    2、【<b class='flag-5'>STM32</b>F0系列學(xué)習(xí)】<b class='flag-5'>之</b>—通用輸入輸出<b class='flag-5'>端口</b>(GPIO)

    STM32開(kāi)發(fā) VS Code + GDB下載調(diào)試

    STM32開(kāi)發(fā) VS Code + GDB下載調(diào)試
    發(fā)表于 11-30 19:06 ?7次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>之</b> VS Code + GDB下載<b class='flag-5'>調(diào)試</b>

    STM32F103系列芯片的地址映射和寄存器映射原理,GPIO端口的初始化

    文章目錄一、STM32F103系列芯片的地址映射和寄存器映射原理1.寄存器2.地址映射和寄存器映射原理二、GPIO
    發(fā)表于 12-05 14:21 ?10次下載
    <b class='flag-5'>STM32</b>F103系列芯片的地址<b class='flag-5'>映射</b>和寄存器<b class='flag-5'>映射</b>原理,GPIO<b class='flag-5'>端口</b>的初始化

    STM32單片機(jī)端口復(fù)用和端口重映射

    STM32單片機(jī)端口復(fù)用和端口重映射STM32單片機(jī)上有很多I/O口,也有很多的內(nèi)置外設(shè),比如I2C、ADC、DAC、USART等都屬于內(nèi)置外設(shè)。這些內(nèi)置外設(shè)基本都是與I/O口共用管腳
    發(fā)表于 12-28 19:23 ?8次下載
    <b class='flag-5'>STM32</b>單片機(jī)<b class='flag-5'>端口</b>復(fù)用和<b class='flag-5'>端口重映射</b>

    STM32學(xué)習(xí)筆記--端口復(fù)用&重映射

    目錄:一、端口復(fù)用二、端口重映射一、端口復(fù)用? STM32 有很多的內(nèi)置外設(shè),這些外設(shè)的外部引腳都是與 GPIO 復(fù)用的。也就是說(shuō),一個(gè) GPIO如果可以復(fù)用為內(nèi)置外設(shè)的功能引腳,那么
    發(fā)表于 12-28 19:35 ?14次下載
    <b class='flag-5'>STM32</b>學(xué)習(xí)筆記--<b class='flag-5'>端口</b>復(fù)用&重<b class='flag-5'>映射</b>

    STM32 MCU TrustZone開(kāi)發(fā)調(diào)試技巧分享

    電子發(fā)燒友網(wǎng)站提供《STM32 MCU TrustZone開(kāi)發(fā)調(diào)試技巧分享.pdf》資料免費(fèi)下載
    發(fā)表于 07-28 13:35 ?1次下載
    <b class='flag-5'>STM32</b> MCU TrustZone<b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>調(diào)試</b>技巧分享

    端口轉(zhuǎn)發(fā)和端口映射的區(qū)別 端口映射端口轉(zhuǎn)發(fā)的各自意義?

    端口轉(zhuǎn)發(fā)和端口映射的區(qū)別 端口映射端口轉(zhuǎn)發(fā)的各自意義? 端口轉(zhuǎn)發(fā)和端口映射是兩種網(wǎng)絡(luò)技術(shù),它們
    的頭像 發(fā)表于 11-22 17:41 ?4929次閱讀

    STM32 TrustZone 開(kāi)發(fā)調(diào)試技巧

    電子發(fā)燒友網(wǎng)站提供《STM32 TrustZone 開(kāi)發(fā)調(diào)試技巧.pdf》資料免費(fèi)下載
    發(fā)表于 12-18 11:16 ?2次下載
    <b class='flag-5'>STM32</b> TrustZone <b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>調(diào)試</b>技巧