[C] 纯文本查看 复制代码
// 定义宏开关,用于选择打印方式
//#define USE_PRINTF // 使用printf方式打印
#define USE_SEGGER_RTT // 使用SEGGER_RTT方式打印
// 定义宏开关,用于选择打印方式
#if defined(USE_PRINTF) && defined(USE_SEGGER_RTT)
#define LOG(...) \
do { \
printf(__VA_ARGS__); \
char logBuffer[256]; \
snprintf(logBuffer, sizeof(logBuffer), __VA_ARGS__); \
SEGGER_RTT_WriteString(0, logBuffer); \
} while (0)
#elif defined(USE_PRINTF)
#define LOG(...) printf(__VA_ARGS__)
#elif defined(USE_SEGGER_RTT)
#define LOG(...) \
do { \
char logBuffer[256]; \
snprintf(logBuffer, sizeof(logBuffer), __VA_ARGS__); \
SEGGER_RTT_WriteString(0, logBuffer); \
} while (0)
#else
#define LOG(...)
#endif
如上代码,在选择SEGGER_RTT方式打印中文。MDK未优化时,代码直接无法正常运行。选择优化后又可以正常运行,打印也正常。不知道是什么问题造成的。可以怎么修改。
|