调STM32F103VBT6板时,其中用到PA15做为普通输入口。配置为输入下拉模式后,对数据进行采样发现数据一直为高。通过阅读datasheet及网上资料发现此脚为JTAG口调试口。
因此需要对此脚做一下重新映射,重新映射方法如下:
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);
然后运行OK!

补充说明


GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);此句为禁止JTAG口调试,用此语句也可使PA15作为普通IO。当需要使用SWD仿真时,可用此语句。

同时要打开GPIOA的AFIO时钟:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

如果不用SWD或JTAG调试时,可用GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE);。

#define GPIO_Remap_SWJ_NoJTRST      ((uint32_t)0x00300100)  /*!< Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST */

#define GPIO_Remap_SWJ_JTAGDisable  ((uint32_t)0x00300200)  /*!< JTAG-DP Disabled and SW-DP Enabled */

#define GPIO_Remap_SWJ_Disable      ((uint32_t)0x00300400)  /*!< Full SWJ Disabled (JTAG-DP + SW-DP) */



STM32 PA15读取时一直为高电平_第1张图片