串口打印经常在调试中使用,目前网上大量能搜到的都是说往uart.c文件中添加串口重定向。但是目前工程中是基于freeRTOS和STM32的HAL库开发的,和网上很多资料环境不是很一致。总结自己开发的经验。
在main函数中的这个地方添加代码
void uart1_data(void); // 接收函数
#ifdef __GNUC__ // 串口重定向
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}