基于芯片创建的工程是没有CubeMX配置的,所以JTAG引脚无法直接当做普通引脚使用,需要重写HAL_MspInit
函数:
void HAL_MspInit(void)
{
/* USER CODE BEGIN MspInit 0 */
/* USER CODE END MspInit 0 */
__HAL_RCC_AFIO_CLK_ENABLE();
__HAL_RCC_PWR_CLK_ENABLE();
/* System interrupt init*/
/** NOJTAG: JTAG-DP Disabled and SW-DP Enabled
*/
__HAL_AFIO_REMAP_SWJ_NOJTAG();
/* USER CODE BEGIN MspInit 1 */
DBGMCU->CR &= ~((uint32_t)1<<5); //关闭异步跟踪
AFIO->MAPR = (AFIO->MAPR & ~((uint32_t)0x7 << 24)) | (2 << 24); /* PA15 PB3 PB4 */
/* USER CODE END MspInit 1 */
}
把上面函数粘贴至board.c
就可以了。