调STM32F103RB板时,其中用到PA15作普通LED灯。一开始编程,配置成PP输出模式,但无论置0还是置1,均输出3.3V。后来发现此脚为JTAG口调试口。
经查找到问题解决办法:
需要重新映射一下,重新映射方法如下:
首先要打开GPIOA的AFIO时钟:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
然后调用GPIO重映射函数,根据需求实现重映射:
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);
然后运行OK!
补充说明
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);此句为禁止JTAG口调试,用此语句也可使PA15作为普通IO。当需要使用SWD仿真时,可用此语句。
如果不用SWD或JTAG调试时,可用GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE)。