如下所示,PA13 PA14 PB3 PB4 PB5, 默认是JTAG + SWD的 PIN, 需要引脚ReMap 才能作为GPIO 使用。
HAL库解决办法
// __HAL_AFIO_REMAP_SWJ_ENABLE(); //Full SWJ (JTAG-DP + SW-DP):
// __HAL_AFIO_REMAP_SWJ_NONJTRST(); //Full SWJ (JTAG-DP + SW-DP) but without NJTRST
__HAL_AFIO_REMAP_SWJ_NOJTAG(); // 不支持JTAG 使用,仅支持SWJ Debug
// __HAL_AFIO_REMAP_SWJ_DISABLE(); // SWJ 和 JTAG 都不支持,但可以用stlink下载程序
标准库解决办法
STM32F1系列PB3,PB4,PA13,PA14,PA15用作普通IO口的特殊配置_atf32 pa15作为io-CSDN博客
1.GPIO_Remap_SWJ_JTAGDisable: /*!< JTAG-DP Disabled and SW-DP Enabled */ 即能用PB3,PB4,PA15做普通IO,PA13&14用于SWD调试
2.GPIO_Remap_SWJ_Disable: /*!< Full SWJ Disabled (JTAG-DP + SW-DP) */ 5个引脚全为普通引脚,但不能再用JTAG&SWD仿真器调试,只能用st-link调试
3.GPIO_Remap_SWJ_NoJTRST: /*!< Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST */PB4可为普通IO口,JTAG&SWD正常使用,但JTAG没有复位
如果你用到所有的五个引脚当做普通IO口,那么上述步骤二中的重映射配置应写为GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); 如果你用PB3,PB4,PA15做普通IO,PA13&14用于SWD调试,则重映射配置应写为GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); 同理可配置只用PB4可为普通IO口的情况。