今天调试电路板,发下下图中的绿色Led和黄色Led不能正常亮灭,开机的时候黄色Led一直亮着。
36dd159f0517430f8d254dc864d24983~noop.image?_iz=58558&from=article.jpg

然后查了半天,发现PA15/JTDI、PB3/JTDO、PB4/JNTRST复位后主要功能不是GPIO功能,是JTAG功能,所以导致上图中的GLed和YLed不能正常亮灭。
b11291786f7146099768c9baf07e2830~noop.image?_iz=58558&from=article.jpg

对于这种情况需要配置JTAG接口的IO为通用IO。配置时要先启用复用IO时钟,再配置,配置代码如下:
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);只需要上面两行代码就行,其中
GPIO_Remap_SWJ_JTAGDisable的含义是JTAG-DP Disabled and SW-DP Enabled,也就是禁用JTAG调试接口只启用SW调试接口。如上配置就可以正常使用PA15、PB3、PB4通用端口功能了。


来源:单片机嵌入式爱好者
https://www.toutiao.com/article/6725661096524382728/