PB3/4默认配置为JTAG脚设置位普通IO

在STM32中,PA13/14/15 & PB3/4默认配置为JTAG功能,若要用作普通IO时需要禁用JTAG(使用SWD模式,可以节省IO),增加如下代码即可:

GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
DBGMCU->CR &= ~(uint32_t)DBGMCU_CR_TRACE_IOEN;                         //加上此句,下载后IO直接变成普通IO使用,否则需要上电重启才能生效,测试不需要?

切记不要使用 GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE),  否则无法用jtag及swd下载调试!若使用了,补救措施就是改启动模式啦!

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //开始AFIO时钟
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE); // 禁止JTAG-DP , 使能SW-DP
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, DISABLE);  //关闭AFIO时钟

原文地址:https://www.cnblogs.com/wfy680/p/15157065.html