现象:如果使用了端口重映射功能,只要一运行到类似于__HAL_AFIO_REMAP_
tiM4_ENABLE();这样的语句,就会推出调试状态,JTAGH或者SW的调试端口就被禁用了。
原因:这个语句的写法有问题,修改AFIO->MAPR寄存器的时候,将调试端口关闭了。
解决方式:
STM32f1xx_hao_gpio_ex.h中的语句。
原来的写法为:#define __HAL_AFIO_REMAP_TIM4_ENABLE() SET_BIT(AFIO->MAPR, AFIO_MAPR_TIM4_REMAP)
改为:#define __HAL_AFIO_REMAP_TIM4_ENABLE() SET_BIT(AFIO->MAPR, AFIO_MAPR_TIM4_REMAP|AFIO_MAPR_SWJ_CFG_JTAGDISABLE)
使用到哪一条重映射语句,就修改哪一条。