main.c
uint8_t debugUart = 0;
uint8_t getDebugUart()
{
return debugUart;
}
void setDebugUart(uint8_t debug)
{
debugUart = debug ;
printf("setDebugUart,%d\n",debug);
Fram_WriteByte(DEBUG_UART,debug);
}
init.c
debugUart = Fram_ReadByte(DEBUG_UART)
usart.c
void printf_wrapperV(const char* format, va_list args_list)
{
vprintf(format, args_list);
}
void Log(uint8_t filter ,const char* format, ...)
{
if(filter>=getDebugUart()){
va_list marker;
va_start(marker, format);
printf_wrapperV(format, marker);
va_end(marker);
}
}
usart.h
#include <stdarg.h>
#include "stdio.h"
void printf_wrapperV(const char* format, va_list args_list);
void Log(uint8_t filter,const char* format, ...);
enum DebugType
{
VERBOSE,
DEBUG,
WARNING
};
使用
Log(VERBOSE,"...");
Log(DEBUG,"...");
Log(WARNING,"...");