在代码调试过程中,经常使用 printf
函数输出调试信息。我们重定义 printf
函数,通过串口输出调试信息。
step1 main.c
文件中添加头文件
#include "stdio.h"
step2 重定义 fputc
函数,代码添加至 main.c
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch. FILE *f)
#endif /* __GNUC__ */
//重定向printf函数
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart1,(uint8_t *)&ch,1,0xFFFF);//输出指向串口USART1
return ch;
}
printf
函数实际上通过调用 fputc
函数实现输出,因此如上代码所示,在 fputc
函数中输出指向串口 UART1
即可。
step3 printf
函数输出示例
main.c
文件 while(1)
函数添加代码如下:
while (1)
{
printf("hello,enjoy!rn");
HAL_Delay(1000);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
输出结果如下: