今天在做测试时,使用了PA3跟PB3,发现PB3一直没有反应,后面又试了一下PB4发现同样也没有反应,我还以为是PB口的引脚烧了(本人小白来着,啥也不懂),后面又开启了全部引脚测试后发现只有PB3跟PB4不行,后面查询资料才知道是这两个引脚默认为JTAG调试接口,同时PA13、PA14、PA15同样如此。
在系统复位的时候,PB3和PB4对应的功能默认为SYS_JTDO和SYS_NJTRST,想要正常使用这两个及PA13、PA14、PA15引脚只需要在开启时钟后禁用这个功能即可,即在开启时钟后添加下面两行代码即可。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //开启复用功能(要先打开复用才能修改复用功能),AFIO为重映射时钟
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); //要先开AFIO时钟,再进行重映射;意思尾表示关闭JTAG,使能SWD。