现象: 程序无法正常向下执行,debug 发现卡死在main中
原因:将串口重映射导致的错误,如果屏蔽fputc, 程序可以正常运行
完整重映射串口:
/**
* 函数功能: 重定向c库函数printf到DEBUG_USARTx
* 输入参数: 无
* 返 回 值: 无
* 说 明:无
*/
int fputc(int ch, FILE *f)
{
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);
return ch;
}
/**
* 函数功能: 重定向c库函数getchar,scanf到DEBUG_USARTx
* 输入参数: 无
* 返 回 值: 无
* 说 明:无
*/
int fgetc(FILE *f)
{
uint8_t ch = 0;
HAL_UART_Receive(&huart1, &ch, 1, 0xffff);
return ch;
}
后续查到应该要开启use microLIB
注意:一定要重编译!!!!
重新编译下载后,程序正常运行。
测试串口正常通讯。