STM32之JTAG口作為普通IO使用

2021-08-28 15:29:44 字數 496 閱讀 6327

stm32f10x系列的mcu復位後,pa13/14/15 以及pb3/4預設配置為jtag功能。有時我們為了充分利用mcu i/o口的資源,會把這些埠設定為普通i/o口。

jtag對應io

jtms  --> pa13

jtck --> pa14

jtdi --> pa15

jtdo --> pb3

jnrst --> pb4

swd對應io

swdio --> pa13

swclk --> pa14

由對應io關係可以看出,swd只需用到pa13/jtms、pa14/jtck兩根線,nrest可以接可不接,而剩下的pb4/jntrst、pb3/jtdo和pa15/jtdi就可以當做普通io使用,但是這三個口當做普通io使用時需要先配置。

void gpioinit(void)

STM32 中JTAG 引腳作為普通IO口設定方法

第一次畫stm32 的pcb 因為採用了swd 除錯,認為jtag的引腳pb3,pb4,沒有用到就做了普通io口,麻煩從此引起了。設定pb3,pb4均為輸出口,且輸出高電平,用萬用表測量,pb4為高,pb3不是高電平,在看mdk 中的暫存器值,pb3,pb4都是高啊?暫存器的值怎麼和實際的值不一樣了...

STM32 中JTAG 引腳作為普通IO口設定方法

看上面的資料手冊,可以知道一般的io口,其預設功能就是io口。可是pb3 pb4 pa13 pa14 pa15這幾個io口的預設功能是jtag功能,io口功能反而是他們的重對映功能。因此要把他們作為普通io口使用,要把他們的重對映功能開啟。只需要把pb3,pb4,pa15當成io使用,設定 rcc ...

STM32 中JTAG 引腳作為普通IO口設定方法

第一次畫stm32 的pcb 因為採用了swd 除錯,認為jtag的引腳pb3,pb4,沒有用到就做了普通io口,麻煩從此引起了。設定pb3,pb4均為輸出口,且輸出高電平,用萬用表測量,pb4為高,pb3不是高電平,在看mdk 中的暫存器值,pb3,pb4都是高啊?暫存器的值怎麼和實際的值不一樣了...