<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      串口打印彩色log

      單片機(jī)開發(fā)中串口日志的打印極大方便了我的調(diào)試工作,隨著日志數(shù)據(jù)的增加又帶來(lái)新的問(wèn)題:短時(shí)間吐出的大量數(shù)據(jù)實(shí)在是讓人眼花繚亂。
      如何在大量數(shù)據(jù)中一眼找到重點(diǎn)成為我今天的課題。如果在終端中能以不同顏色甚至不同字體展示數(shù)據(jù)無(wú)疑可以在極大程序上解決“海底撈針”的困境。
      彩色日志在學(xué)習(xí)zerphy中就給我留下深刻印象,今日是第一次實(shí)現(xiàn)這個(gè)功能。
      終端通過(guò)ANSI轉(zhuǎn)義序列識(shí)別內(nèi)部指令,查閱資料,將顏色及字體相關(guān)的序列摘抄如下:

      轉(zhuǎn)義序列碼 對(duì)應(yīng)的重置序列 描述
      ESC[1;34;{...}m 設(shè)置單元格(?)的圖形模式,用分號(hào)分隔 ;
      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
      藍(lán) 34 44
      品紅 35 45
      36 46
      37 47
      默認(rèn) 39 49
      重置 0 0

      代碼示例:

      點(diǎn)擊查看代碼
      void DBG_Inf(DbgLevel_eTypeDef _level, char *fmt,...)
      {
          uint16_t len=0;
          va_list args;
      
          //_level小于調(diào)試打印輸出級(jí)別時(shí)不打印數(shù)據(jù)
          if(_level < DBG_LOG_LEVEL)
              return;
      
          va_start(args, fmt);            //獲取可變參數(shù)列表的第一個(gè)參數(shù)地址
      
          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

      參考鏈接:http://www.rzrgm.cn/chargedcreeper/p/-/ANSI

      posted @ 2025-10-30 23:09  Jonathan_Ray  閱讀(5)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 国产欧美一区二区精品久久久 | 国产边打电话边被躁视频| 国产男女爽爽爽免费视频| 亚洲女人天堂成人av在线| 不卡一区二区国产精品| 中国女人熟毛茸茸A毛片| av天堂午夜精品一区| 亚洲色av天天天天天天| 日本一道一区二区视频| 无码h黄肉动漫在线观看| 少妇被粗大的猛烈进出动视频| 在线精品视频一区二区三四| 日韩V欧美V中文在线| 在线观看美女网站大全免费| 亚洲AV成人一区国产精品| 亚洲欧美牲交| 国产男女黄视频在线观看| 久久久久亚洲av成人网址| 国产一区二区三区禁18| 中文字幕日韩一区二区不卡| 国产成人精品午夜2022| 一个人免费观看WWW在线视频| 久久综合综合久久综合| 成人午夜福利一区二区四区| 亚洲国产av无码精品无广告 | 天堂V亚洲国产V第一次| 一本色道国产在线观看二区| 成在人线AV无码免观看| 安丘市| 日本夜爽爽一区二区三区| 国产精品免费中文字幕| 亚洲男女内射在线播放| 亚洲成人av免费一区| 国产成人女人在线观看| 特黄三级又爽又粗又大| 亚洲一区二区精品动漫| 少妇撒尿一区二区在线视频| 中文国产成人精品久久不卡| 无码av中文字幕久久专区| 深夜福利资源在线观看| 少妇被黑人到高潮喷出白浆|