STM32 JTAG腳做普通IO使用的方法

2021-10-23 14:10:35 字數 723 閱讀 2152

在工程設計的時候,使用了48腳的stm32f103c8t6,引腳數量不夠,導致使用了pb3,pb4,pa15,按標準gpio配置完畢後發現不受控。

查詢相關資料發現,這三個腳的功能時jtag功能。用這幾個腳時,需要禁用jtag功能開啟swd功能,並且要對引腳功能進行remap。

以pb3為例(其他引腳同理):

rcc_apb2periphclockcmd

(rcc_apb2periph_gpiob | rcc_apb2periph_afio,enable)

;gpio_pinremapconfig

(gpio_remap_swj_jtagdisable,enable)

;//禁用jtag功能,開啟swd

gpio_initstructure.gpio_pin = gpio_pin_3;

//選擇埠號(0~15或all)

gpio_initstructure.gpio_mode = gpio_mode_ipu;

//選擇io介面工作方式 //浮空輸入

gpio_initstructure.gpio_speed = gpio_speed_50mhz;

//設定io介面速度(2/10/50mhz)

gpio_init

(gpiob,

&gpio_initstructure)

;

STM32 JTAG失效恢復

昨天除錯一塊stm32l151的板子,用的是jlinkob,除錯時,出現下面的錯誤 這個錯誤出現的原因是,程式中有修改jtag埠 pa13,pa14 的語句,當把jtag當做普通io口時,jlink就不能返 試資訊,jlink就讀不回相應暫存器的值了。rcc apb2periphclockcmd r...

STM32之JTAG口作為普通IO使用

stm32f10x系列的mcu復位後,pa13 14 15 以及pb3 4預設配置為jtag功能。有時我們為了充分利用mcu i o口的資源,會把這些埠設定為普通i o口。jtag對應io jtms pa13 jtck pa14 jtdi pa15 jtdo pb3 jnrst pb4swd對應io...

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

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