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