如何將STM32的調(diào)試口設(shè)置為普通IO口

背景

最近有一個(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 IO JTAG IO SWD IO
PB3 ? NC
PB4 ? NC
PA13 ? ?
PA14 ? ?
PA15 ? NC

由此我們可以知道:
如果要使用JTAG調(diào)試功能,那么PB3,PB4,PA13,PA14,PA15都不能使用;
而如果我們關(guān)閉JTAG功能,但是開啟SWD調(diào)試功能,那么PB3,PB4,PA15都可以當(dāng)作普通IO來使用了;

ST官方3.5的庫有提供關(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í)行上面語句后,PB3,PB4,PA13,PA14,PA15都可以當(dāng)作普通iO來使用,此時(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í)行上面語句后,PB3,PB4,PA15都可以當(dāng)作普通iO來使用,且可以通過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的語句,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功能的影響了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容