在項目中直接使用printf輸出不是一種好習慣, 一般都建議對調試輸出進行二次封裝,方便在項目交付階段進行調試屏蔽,通過對不同優先級的配置,也方便在調試階段調試,下方就是一個簡單的封裝:
#ifndef __LOG_H__ #define __LOG_H__ #include#include /* 定義打印類型 */ #define LOG_LVL_EMERG 0 /*!< 緊急 */ #define LOG_LVL_ERROR (LOG_LVL_EMERG + 1) /*!< 錯誤 */ #define LOG_LVL_WARN (LOG_LVL_EMERG + 2) /*!< 警告 */ #define LOG_LVL_INFO (LOG_LVL_EMERG + 3) /*!< 信息 */ #define LOG_LVL_DEBUG (LOG_LVL_EMERG + 4) /*!< 調試 */ #define LOG_LVL_TRACE (LOG_LVL_EMERG + 5) /*!< 追蹤 */ #define DISABLE 0 #define ENABLED 1 #define PRINTF_OMIT DISABLE /*!< 使能輸出 */ // #define PRINTF_OMIT ENABLED /*!< 關閉輸出 */ #define log_printf(...) printf(__VA_ARGS__) #if (PRINTF_OMIT == DISABLE) #define LOG(level, ...) do{ if(level <= LOG_LVL_CTRL){ log_printf(__VA_ARGS__); } }while(0) #else #define LOG(level,...); #endif extern uint8_t LOG_LVL_CTRL; void log_usart_init(void); /* 使用 */ // LOG(LOG_LVL_DEBUG, "%d ",i); #endif /* __LOG_H__ */
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
封裝
+關注
關注
127文章
8012瀏覽量
143466 -
調試
+關注
關注
7文章
589瀏覽量
34080 -
Printf
+關注
關注
0文章
83瀏覽量
13744
原文標題:技巧|調試打印
文章出處:【微信號:玩轉單片機,微信公眾號:玩轉單片機】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
【開源代碼】-基于國民N32G45x系列MCU使用JLINK的開發組件工具-RTT Viewer 調試打印
我的芯片是:國民技術的 N32G45XVL SEGGER-RTTViewer 打印調試信息方法 準備資料: jlink調試器一個 開發板引出swclk 和swdio 引腳 安裝jflash套件
基于單片機的串口調試打印
查看EK-RA6M4的原理圖,如下圖所示,串口 UART0 掛在了Pmod2接口的 P411,P410 這兩個引腳上,而這兩個引腳又可以復用為 SPI1 功能的兩個引腳。此時,我們將希望修改FSP配置,讓這兩個引腳作為程序的 printf() 標準輸出調試打印。
請問freertos可視化調試中打印任務信息是不是只可以打印一次?
在freertos中,使用可視化調試打印任務消息,但是打印不全,還只能打印一次,使用IAR自帶的調試插件看,顯示可視化
發表于 05-07 06:16
Fx3 Uart調試打印錯誤
嗨,伙計們,我試圖用UVCVideoClass例子來獲得在FX3上的UART調試工作。不幸的是,我只能在控制臺上得到垃圾:在我的串行控制臺中,不是預期的“應用程序啟動\r\n”,而是在我的串行控制臺
發表于 01-24 11:35
AB32VG1開發板開發環境搭建和串口調試打印過程
有幸申請到開發板,下面說下開發環境搭建和串口調試打印過程1:先下載RTT studio開發工具,RTT studio下載地址2:下載完成后,需要測試帳號才可以登錄IDE,這部分略過3:新建RTT工程
發表于 10-10 17:29
cmbackTrace組件在開啟ulog后調試打印不一樣是何原因
packages—>tools packages—>cmbackTrace測試: cmb_test DIVBYZERO效果:可以看到此時打印正常開啟ULOG功能(使能FILE BACKEND 與LOG FILTER,有時候不開啟是正常的)測試:這與前打印不一
發表于 11-02 10:59
蜂鳥E203移植ZYNQ7000開發板調試打印hellowaord亂碼怎么解決?
移植蜂鳥E203到zynq 保留GPIOA模塊,用gpio16和gpio17做串口uart的RX和TX.用Nucleistidio里面模板的helloworld建工程后,下載到開發板里面 串口打印
發表于 08-12 07:49
AM335x平臺在引導SPL、Uboot、Kernel期間如何修改調試打印串口概述
大家好,這篇文章主要基于AM335x的 linux SDK,講述如何修改UART接口去打印調試信息。AM335x一共有六個串口,分別是UART0、UART1、UART2、UART3、UART4
發表于 04-23 17:03
?25次下載
串口調試打印[支持文本顏色輸出]
#日志顏色格式說明顏色日志格式格式:\033[顯示方式;字體色;背景色m如缺省默認:\033[0m //表示結束打印-\033 八進制轉義 表示ESC-顯示方式0(默認值)、1(高亮)、22
發表于 12-14 19:04
?0次下載
如何用調試器JLink來打印信息
摘要:不知道大家在單片機開發中是如何打印調試信息的,大多數應該是用串口調試打印吧,在大多數的情況下,一般在制板和寫代碼時都會預留串口1做為調試
OpenHarmony系統如何使用gdb調試init
其為內核直接拉起的第一個用戶態進程,問題定位手段只能依賴代碼走讀和增加調試打印,初始化過程中系統崩潰的問題就更難定位了。如果能使用 gdb 調試 init,會極大提高定位效率。
Jlink調試打印工具RTT
RTT支持兩個方向的多個通道,上到主機,下到目標,它可以用于不同的目的,為用戶提供盡可能多的自由。默認實現每個方向使用一個通道,用戶可在在調試終端輸入和輸出。
發表于 04-06 09:22
?0次下載
評論