单片机 彩色终端日志打印显示

自己整理的一个颜色打印,按需所取

包括函数文件 文件名字 行数的打印

__FILE__, __FUNCTION__, __LINE__

日期的打印

__DATE__, __TIME__

各种颜色的打印

github存放地址:

GitHub - LKCsuper/printf_color

#ifndef _PRINTF_COLOR_H
#define _PRINTF_COLOR_H

#include "stdio.h"
#define PRINTF_COLOR            1 //颜色日志输出模式(显示终端需要支持)
#if PRINTF_COLOR
/* 字体颜色 */
#define BLACK                30
#define RED                  31
#define GREEN                32
#define BROWN                33
#define YELLOW               33
#define BLUE                 34
#define PURPLE               35
#define CYAN                 36
#define GRAY                 37
#define WHITE                37

/* 字体格式 */
#define BOLD                 1
#define UNDERLINE            4
#define BLINK                5
#define REVERSE              7
#define HIDE                 8
#define CLEAR                2
#define NONE                 0

/* 背景颜色 */
#define BLACK_BACKGROUND                40
#define RED_BACKGROUND                  41
#define GREEN_BACKGROUND                42
#define YELLOW_BACKGROUND               43
#define BLUE_BACKGROUND                 44
#define PURPLE_BACKGROUND               45
#define CYAN_BACKGROUND                 46
#define WHITE_BACKGROUND                47

/* dis_mode:显示模式 fwd_clor:前景色 bak_clor:背景色 */
#define COLR_SET(dis_mode, fwd_clor, bak_clor) {\
    printf("\033[%d;%d;%dm",dis_mode, fwd_clor, bak_clor);\
}
#define DEVICE_LOG(dis_mode, fwd_clor, bak_clor, dev_name,...) {\
/*设置颜色*/ COLR_SET(dis_mode, fwd_clor, dev_name);\
/*设置参数*/ printf(dev_name, ##__VA_ARGS__);\
/*设置结束*/ COLR_SET(0, 0, 0);\
}
#define DEVICE_MULTI_LOG(dis_mode0, fwd_clor0, bak_clor0, \
dis_mode1, fwd_clor1, bak_clor1, dev_name,...) {\
/*设置device name的颜色*/       COLR_SET(x0,y0,z0);\
/*设置device name*/ 		printf("%s",#dev_name);\
/*设置参数的颜色*/ 		COLR_SET(x1,y1,z1);\
/*设置参数*/ 		printf(__VA_ARGS__);\
/*设置结束*/	COLR_SET(0,0,0);\
}

/* 不同颜色的打印 */
#define PRINTF_YELLOW(fmt, ...)     DEVICE_LOG(BOLD, YELLOW, BLACK_BACKGROUND,fmt,##__VA_ARGS__)
#define PRINTF_RED(fmt, ...)        DEVICE_LOG(BOLD, RED,    BLACK_BACKGROUND,fmt,##__VA_ARGS__)
#define PRINTF_BLACK(fmt, ...)      DEVICE_LOG(BOLD, BLACK,  BLACK_BACKGROUND,fmt,##__VA_ARGS__)
#define PRINTF_GREEN(fmt, ...)      DEVICE_LOG(BOLD, GREEN,  BLACK_BACKGROUND,fmt,##__VA_ARGS__)
#define PRINTF_BROWN(fmt, ...)      DEVICE_LOG(NONE, BROWN,  BLACK_BACKGROUND,fmt,##__VA_ARGS__)
#define PRINTF_BLUE(fmt, ...)       DEVICE_LOG(BOLD, BLUE,   BLACK_BACKGROUND,fmt,##__VA_ARGS__)
#define PRINTF_PURPLE(fmt, ...)     DEVICE_LOG(BOLD, PURPLE, BLACK_BACKGROUND,fmt,##__VA_ARGS__)
#define PRINTF_CYAN(fmt, ...)       DEVICE_LOG(BOLD, CYAN,   BLACK_BACKGROUND,fmt,##__VA_ARGS__)
#define PRINTF_GRAY(fmt, ...)       DEVICE_LOG(NONE, GRAY,   BLACK_BACKGROUND,fmt,##__VA_ARGS__)
#define PRINTF_WHITE(fmt, ...)      DEVICE_LOG(BOLD, WHITE,  BLACK_BACKGROUND,fmt,##__VA_ARGS__)

/* 普通打印 */
#define PRINTF(fmt, ...)    PRINTF_WHITE(fmt, ##__VA_ARGS__)
/* 通知 */
#define INFO(fmt, ...)      PRINTF_BLUE("INFO:"fmt, ##__VA_ARGS__)
/* 警告 */
#define WARNING(fmt, ...)   PRINTF_YELLOW("WARNING:[%s %s line%d]"fmt, __FILE__,  __FUNCTION__, __LINE__, ##__VA_ARGS__)
/* 错误 */
#define ERROR(fmt, ...)     PRINTF_RED("ERROR:[%s %s line%d]"fmt, __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__)
/* 打印日期 */
#define PRINTF_Date()       PRINTF_WHITE("Firmware compile time:%s %s\n", __DATE__, __TIME__)

#endif

#endif

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值