有沒(méi)有小伙伴遇到這種情況:在使用GD32F303的時(shí)候,想要將PA13~15以及PB3和PB4作為IO口來(lái)使用,卻怎么也不成功呢?下面小編就來(lái)告訴大家原因。
我們先來(lái)看下GD32F303 datasheet中這幾個(gè)引腳的定義:


原來(lái),這幾個(gè)引腳比較特殊,它們?cè)谀J(rèn)情況下,是用于調(diào)試的JTAG/SWD口功能,想要當(dāng)做普通IO口或者其他復(fù)用功能來(lái)使用需要進(jìn)行“remap”。
那么如何進(jìn)行remap呢?我們?cè)賮?lái)看下GD32F303 用戶手冊(cè)中的《GPIO和AFIO》章節(jié)中的JTAG/SWD 備用功能重映射介紹:


可以看到,remap有多種模式可以選擇,比如將SWJ_CFG設(shè)置為“010”,那么就可以保留SWD功能,即PA13和PA14還可以用于調(diào)試,而PA15、PB3和PB4則被“釋放”,從而可以當(dāng)做普通IO或者其他復(fù)用功能引腳使用;若設(shè)置SWJ_CFG為“100”,那么PA13~PA15、PB3、PB4都可以當(dāng)做普通IO口來(lái)使用,但注意,這個(gè)時(shí)候要想再用SWD模式去調(diào)試MCU會(huì)失敗哦。
現(xiàn)在來(lái)教大家如何通過(guò)庫(kù)函數(shù)實(shí)現(xiàn)JATG/SWD的remap功能。
通過(guò)用戶手冊(cè)我們可以看到SWJ_CFG【2:0】位于AFIO_PCF0中,所以必須要先打開(kāi)AF時(shí)鐘:

然后再使用gpio_pin_remap_config函數(shù)進(jìn)行remap配置就可以了。所以完整的代碼是:
調(diào)用該段代碼后,小伙伴們就可以將這些特殊引腳配置為你想要的功能啦!
-
單片機(jī)
+關(guān)注
關(guān)注
6058文章
44816瀏覽量
644533 -
IO
+關(guān)注
關(guān)注
0文章
483瀏覽量
39998 -
嵌入式
+關(guān)注
關(guān)注
5125文章
19434瀏覽量
312972
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
STM32H750 PB3、PB4、PB5配置成SPI功能需要額外處理JTAG功能嗎?

GD32F303想控制PA13~15、PB3和PB4不成功?#單片機(jī) #嵌入式開(kāi)發(fā) #GD32
stm32特殊IO口PA13,PA14,PA15,PB3,PB4轉(zhuǎn)普通
配置PB4和PB3輸出電平一直是高
PB3 PB4請(qǐng)問(wèn)如何當(dāng)普通IO使用
AT32F403A PB3 PB4 PA15如何用作普通IO使用
PB3 PB4不能輸出他所需要的電平狀態(tài)原因
在KEIL5軟件中使用STLINK仿真器仿真時(shí)出錯(cuò)怎么辦
請(qǐng)問(wèn)CH32F103 SPI1如何切換到PB3 PB4 PB5?
STM32單片機(jī),STLINK的SW仿真時(shí)“no target connected”問(wèn)題及處理

APM32F003F6P6_GPIO_PB3和PB4能否分別做不同邊沿觸發(fā)

GD32F303固件庫(kù)開(kāi)發(fā)(13)----定時(shí)器TIM捕獲PWM測(cè)量頻率與占空比

【GD32F303紅楓派開(kāi)發(fā)板使用手冊(cè)】第二講 GPIO-流水燈實(shí)驗(yàn)

【GD32 MCU 移植教程】2、從 GD32F303 移植到 GD32F503

評(píng)論