登录发现更多内容
首页
分类
发帖
账号
自动登录
找回密码
密码
登录
立即注册
立即登录
立即注册
其他登录
QQ
微信
首页
Portal
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
产品教程
BBS
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
开发资料
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
样品购买
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
IoT云平台
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
GitHub
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
技术博客
求助问答
Xiuno资源
Xiuno教程
Xiuno插件
Xiuno主题
休闲茶馆
定制主题
搜索
搜索
热搜:
LoRa
ESP8266
安信可
本版
帖子
用户
请
登录
后使用快捷导航
没有账号?
立即注册
每日签到
任务
广播
导读
排行榜
设置
我的收藏
退出
9
0
0
首页
技术杂谈
›
宏定义调试打印功能
返回列表
宏定义调试打印功能
[ 复制链接 ]
发布帖子
曹县
金牌会员
7
主题
197
回帖
2073
积分
金牌会员
金牌会员, 积分 2073, 距离下一级还需 927 积分
金牌会员, 积分 2073, 距离下一级还需 927 积分
积分
2073
私信
9人留言
楼主
技术杂谈
1344
9
2024-1-8 10:11:05
[i=s] 本帖最后由 曹县 于 2024-1-9 16:14 编辑 [/i]
# 宏定义调试打印功能 我们单片机有时候没法模拟调试,只能通过串口打印的信息看程序跑到哪里去了,所以需要增加一些打印标记,便于后续发现问题 但是打印太多的信息回占用io,对于一些设备来说消耗性能很大,所以一般正式固件就需要把打印关掉; 程序发布的时候,手动一个一个删除printf肯定不现实,而且容易出错,把代码搞坏了; 有时发布后还需要回来继续调试,所以需要一个开关可以一键把打印信息打开和关闭 这里介绍一种简单,烂大街,好用的方式: ```c /* debug 宏定义 */ #ifndef MY_DEBUG_H_ #define MY_DEBUG_H_ #define DEBUG 1 #if DEBUG #define PRF(fmt, args...) \ do \ { \ printf("< Line:%d :%s>> ", __LINE__, __FUNCTION__); \ printf(fmt, ##args); \ } while (0) #else #define DBG_PRINTF(fmt, args...) #endif #define LOG() \ do \ { \ printf("< Line:%d :%s>> \n", __LINE__, __FUNCTION__); \ } while (0) #endif /* MY_DEBUG_H_ */ ``` ```c #define DEBUG 1 int main() { uint32_t a = 23; PRF("%d\n",a); int b = 22; } ``` ```bash gcc –E hello.c –o hello.i ``` 预编译之后,代码就变成 ```c #define DEBUG 1 int main() { uint32_t a = 23; do \ { \ printf("< Line:%d :%s>> ", __LINE__, __FUNCTION__); \ printf("%d\n",a); \ } while (0); int b = 22; } ``` 把 `DEBUG`宏弄成0就是 ```c #define DEBUG 0 int main() { uint32_t a = 23; int b = 22; } ```
点赞
0
收藏
0
淘帖
0
────
0
人觉得很赞
────
回复
使用道具
举报
9 回复
电梯直达
正序浏览
倒序浏览
正序浏览
沙发
lazy
回复
使用道具
举报
2024-1-8 10:19:10
真不错
回复
评论
使用道具
举报
板凳
1084504793
回复
使用道具
举报
2024-1-8 10:31:41
赞
回复
评论
使用道具
举报
地板
san
回复
使用道具
举报
2024-1-8 10:36:39
赞
回复
评论
使用道具
举报
5
#
爱笑
回复
使用道具
举报
2024-1-8 10:57:44
回复
评论
使用道具
举报
用心做好保姆工作
6
#
WT_0213
回复
使用道具
举报
2024-1-8 11:06:09
赞
回复
评论
使用道具
举报
7
#
bzhou830
回复
使用道具
举报
2024-1-8 15:24:30
真不错
回复
评论
使用道具
举报
选择去发光,而不是被照亮
8
#
is麟儿
回复
使用道具
举报
2024-1-8 19:56:19
不支持markdown语法显示吗?
回复
评论
使用道具
举报
9
#
曹县
楼主
回复
使用道具
举报
2024-1-9 16:14:35
is麟儿 发表于 2024-1-8 19:56
不支持markdown语法显示吗?
刚刚搞了一下,原来用错编辑器了
回复
评论
使用道具
举报
10
#
WT_0213
回复
使用道具
举报
2024-1-9 16:48:54
赞
回复
评论
使用道具
举报
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
立即登录
手机登录
点评
高级模式
本版积分规则
回帖并转播
回帖后跳转到最后一页
返回
浏览过的版块
小安派&M61环境搭建、编译烧录教程
Ai-M61-Kit外设移植教程
Ai-M61系列
今日推荐
MDK5.40编译PB-03 SDK
关于蓝牙TB-03F的低功耗和TB系列的定频测试
求助——AiPi-PalChatV1通过UART-MCP控制梁山派(GD32)LED失败
星闪怎么下架了
【求助】D200连接官方烧录底板 烧录握手失败
基于AI-WB2实现MQTTS(MQTT-SSL)单向+双向加密传输
基于Ai-WB2实现使用MQTT完成订阅、发布及点灯功能
BW20-12F-KIT usbd_inic_dplus问题
基于Ai-WB2的HomeAssistant实现RGB彩灯控制功能
BU04 原理图
热帖排行
MDK5.40编译PB-03 SDK
星闪调用sle_start_announce失败
求助,搭载RA-01模块的esp32代码编写,发送lora信号
关于蓝牙TB-03F的低功耗和TB系列的定频测试
求助AI-WB2在AP模式下TCP/IP服务端模式透传发送要1024字节
求助:安信可科技WB2系列aipi-palchatv1官方代码烧录后模组无反
求助——AiPi-PalChatV1通过UART-MCP控制梁山派(GD32)LED失败
求助-BLE模块接收广播数据问题
统计信息
会员数: 30772 个
话题数: 44785 篇
首页
分类
我的