尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

串口打印彩色log

串口打印彩色log
📅 发布时间:2026/6/19 16:31:21

单片机开发中串口日志的打印极大方便了我的调试工作,随着日志数据的增加又带来新的问题:短时间吐出的大量数据实在是让人眼花缭乱。
如何在大量数据中一眼找到重点成为我今天的课题。如果在终端中能以不同颜色甚至不同字体展示数据无疑可以在极大程序上解决“海底捞针”的困境。
彩色日志在学习zerphy中就给我留下深刻印象,今日是第一次实现这个功能。
终端通过ANSI转义序列识别内部指令,查阅资料,将颜色及字体相关的序列摘抄如下:

转义序列码 对应的重置序列 描述
ESC[1;34;{...}m 设置单元格(?)的图形模式,用分号分隔 ;
ESC[0m 重置(消除)所有颜色和图形
ESC[1m ESC[22m 粗体
ESC[2m ESC[22m 虚化(暗淡)
ESC[3m ESC[23m 斜体
ESC[4m ESC[24m 下划线
ESC[5m ESC[25m 闪烁
ESC[7m ESC[27m 反向
ESC[8m ESC[28m 隐形
ESC[9m ESC[29m 删除线
颜色名 前景色(字)码 背景色码
黑 30 40
红 31 41
绿 32 42
黄 33 43
蓝 34 44
品红 35 45
青 36 46
白 37 47
默认 39 49
重置 0 0

代码示例:

点击查看代码
void DBG_Inf(DbgLevel_eTypeDef _level, char *fmt,...)
{uint16_t len=0;va_list args;//_level小于调试打印输出级别时不打印数据if(_level < DBG_LOG_LEVEL)return;va_start(args, fmt);            //获取可变参数列表的第一个参数地址if(DBG_LEVEL_INFO == _level){memcpy(dbg_buf, (const void*)"INFO:", sizeof("INFO:"));len = sizeof("INFO:");}else if(DBG_LEVEL_WARN == _level){memcpy(dbg_buf, (const void*)"\x1b[33mWARN:", sizeof("\x1b[33mWARN:"));len = sizeof("\x1b[33mWARN:");}else if(DBG_LEVEL_ERR == _level){memcpy(dbg_buf, (const void*)"\x1b[31mERR:", sizeof("\x1b[31mERR:"));len = sizeof("\x1b[31mERR:");}len += vsnprintf(dbg_buf+len, DBG_BUF_LENGTH, fmt, args);va_end(args);UART_SendDatas(DEBUG_UARTx, (uint8_t *)dbg_buf, len);UART_SendDatas(DEBUG_UARTx, "\x1b[0m", sizeof("\x1b[0m"));
}

效果展示

ScreenShot_2025-10-30_230420_288

参考链接:https://www.cnblogs.com/chargedcreeper/p/-/ANSI

相关新闻

  • 第七天第四天7.4
  • Linux提权基础
  • 2025年有实力的GEO优化公司TOP10排行榜:GEO系统、GEO优化排名、GEO优化排名软件公司优选

最新新闻

  • 2026赢客网络综合实力风云榜,价格透明口碑推荐不踩雷 - mypinpai
  • 商用车电泳漆品牌哪家靠谱 2026年市场口碑解析 - 品牌排行榜
  • OpCore Simplify:10分钟搞定黑苹果配置的智能工具终极指南
  • MC68HC912BD32串行通信与Byteflight协议深度解析
  • Switch虚拟Amiibo终极指南:免费解锁游戏隐藏内容
  • 2026年初中毕业学西点推荐好的学校用户力荐 - mypinpai

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号