技能会随着经验的积累不断提升的!
STM32F103C8T6的PA15,PB3,PB4管脚的复用功能分别是:PA15/JTDI、PB3/JTDO、PB4/JNTRST;
这几个管脚复位后的主功能是JTDI 、JDO、 JNTRST。要这几个管脚作为普通I/O口用时,
在初始化配置时的前面添加 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); 引脚重映射函数,
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口的情况。
调试过程中遇到了Jlink不能下载的问题,这回终于知道原因了。五个特殊引脚都作为普通IO了,失去了JTAG&SWD仿真器调试功能。。。。。