在项目中直接使用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__ */
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
封装
+关注
关注
126文章
7873浏览量
142893 -
调试
+关注
关注
7文章
578浏览量
33923 -
Printf
+关注
关注
0文章
83浏览量
13649
原文标题:技巧|调试打印
文章出处:【微信号:玩转单片机,微信公众号:玩转单片机】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
【开源代码】-基于国民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
•24次下载
串口调试打印[支持文本颜色输出]
#日志颜色格式说明颜色日志格式格式:\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次下载
评论