关于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();之后使用,就可以在串口助手中看到正确的数据了。

原文地址:https://www.cnblogs.com/dzswise/p/15561489.html