默认情况下,由于JTAG没有关闭,因此PB3~4不能作为普通I/O口使用。此外,为了用串口方式下载程序,还需在STM32转接板上插上BOOT1的跳线(绿色转接板的左上角),这更是导致了PB2~7这六个I/O口都无法使用。
为了解决这个问题,需要在程序中手动将JTAG关闭:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); // 开启AFIO时钟
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); // 禁用JTAG功能
下载程序时需要插上BOOT1跳线,下载完毕后拔掉BOOT1的跳线,然后才能正常使用PB0~7这八个I/O口。
如果还需下载程序,那么就得再次插上跳线。。。。