文章说明:串口实现printf相同功能的函数以及宏定义调试开关
宏定义
说明:可放置在xx.h文件中
#define LOG_ENABLE = 1 //启用log输出
#define LOG_ENABLE = 0 //关闭log输出
#if LOG_ENABLE
void uart_printf(const char* myFormat, ...);
#define log_printf(...) uart_printf(__VA_ARGS__)
#else
#define log_printf(...)
#endif
printf功能实现
说明:可放置在xx.c文件中
#if LOG_ENABLE
#include <stdarg.h>
char my_tx_buf[30] = {0};
void uart_printf(const char* myFormat, ...)
{
char* p_buf = my_tx_buf;
va_list my_va;
va_start(my_va, myFormat);
p_buf += vsprintf(p_buf , myFormat, my_va);
va_end(my_va);
uart_send(my_tx_buf, strlen(my_tx_buf));
}
#endif
使用举例
log_printf("hello num is = %d,hex is =%02x",12,12);
对应输出
hello num is = 12,hex is =0x0C