STM32CubeMX HAL庫工程printf串口打印重定向

轉載於:https://www.bilibili.com/video/av64690830?p=12

1. 引入頭文件 stdio.h

#include "stdio.h"

2.添加重定向代碼

  • 此處我是將printf函數重定向到串口1
// 重定向printf函數
int fputc(int ch,FILE *f)
{
    uint8_t temp[1]={ch};
    HAL_UART_Transmit(&huart1,temp,1,2);
	return 0;
}

3.添加DEBUG宏定義

  • 使用以下宏定義,debug結果會按照格式化輸出,非常方便
#define USER_MAIN_DEBUG

#ifdef USER_MAIN_DEBUG
#define user_main_printf(format, ...) printf( format "\r\n",##__VA_ARGS__)
#define user_main_info(format, ...) printf("【main】info:" format "\r\n",##__VA_ARGS__)
#define user_main_debug(format, ...) printf("【main】debug:" format "\r\n",##__VA_ARGS__)
#define user_main_error(format, ...) printf("【main】error:" format "\r\n",##__VA_ARGS__)
#else
#define user_main_printf(format, ...)
#define user_main_info(format, ...)
#define user_main_debug(format, ...)
#define user_main_error(format, ...)
#endif
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章