STM32的PB3、PB4、PA14、PA15引脚可以在使用ISP烧录的情况下释放出来,作为普通IO口使用。
初始化代码如下:
在实际测试的时候,若发现工程内上述引脚仍无法当做普通IO使用,很可能是上述初始化代码后还执行了GPIOA或GPIOB的时钟使能代码,解决办法为:上面这段初始化代码放在所有IO初始化最后就好了。
问题原因:
当把PB3、PB4、PA14、PA15初始化之后,若再次调用GPIOA或GPIOB端口的时钟使能代码的话,会使得这些引脚变回JTAG或SWD的引脚
即上述初始化完成之后不能再执行:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);
否则引脚会变回JTAG或SWD的引脚,而无法作为普通IO使用
注:上述初始化代码把所用引脚均配置为推挽输出,可根据需要自行配置为其他模式