关于stm32串口输出 printf重定向问题


stm32串口输出重定向问题,一些小细节,调通之后需要注意的,记录一下。

一.首先要保证串口是联通的,就是使用HAL_UART_Transmit()函数发送数据时,串口助手是可以正常接收到的。

二.要在

UART_HandleTypeDef huart1; 之后 添加 #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;
}   三.要在keil中配置,使用microlib

 三点完成之后

在函数中使用printf时,要注意在串口初始化函数MX_USART1_UART_Init();之后使用,就可以在串口助手中看到正确的数据了。