默認情況下,由於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口。
如果還需下載程序,那麼就得再次插上跳線。。。。