请
登录
后使用快捷导航
没有帐号?
注册
英国威廉希尔公司网站
william hill官网
设计作品
全志V85x硬件设计大赛作品精选第一期
全志V85x硬件设计大赛作品精选第二期
瑞萨RA4M2物联网网关设计挑战赛作品集
国民技术N32开源移植挑战赛作品精选
2022福建省大学生人工智能创意赛作品合集
OpenHarmony开发者成长计划学生挑战赛优秀作品
精选帖子
【作品合集】龙芯2K0300蜂鸟开发板试用精选
【资源下载】英飞凌PSoC 6 RTT物联网开发板
【正点原子STM32精英V2开发板】HC-SR501红外人体感应
【沁恒CH32V208开发板试用】跳动的心脏-Systick
【鲁班猫创意氛围赛】现代化无线哨兵
【飞凌RK3588开发板试用】基于pyqt5的人脸识别
书籍评测
电子工程师必备丛书系列——威廉希尔官方网站 板技能速成宝典
Proteus实战攻略:从简单威廉希尔官方网站 到单片机威廉希尔官方网站 的仿真
电子工程师必备丛书系列——九大系统威廉希尔官方网站 识图宝典
OpenHarmony嵌入式系统原理与应用——基于RK2206芯片
深入理解微电子威廉希尔官方网站 设计——数字电子技术及应用(原书第5版)
资深工程师十余年实战经验,PADS PCB设计指南
社区工程师专题
第一期:坚持兴趣成就嵌入式工程师
第二期:电子工程师需要在参赛中历练成长
第三期:创意源于生活,工具始于懒惰
第四期:工程师漫谈开发板评测的乐趣
第五期:硬件工程师的心路历程
第六期:宁精勿杂,在嵌入式领域做到优秀
版块
技术社区
FPGA开发者技术社区
RISC-V MCU技术社区
HarmonyOS技术社区
瑞芯微Rockchip开发者社区
OpenHarmony开源社区
嵌入式技术william hill官网
单片机及嵌入式
单片机/MCUwilliam hill官网
ARM技术william hill官网
STM32/STM8技术william hill官网
RISC-V技术社区
FPGA|CPLD|ASICwilliam hill官网
DSPwilliam hill官网
电源与无线技术
电源技术william hill官网
无线充电技术
WIFI技术
蓝牙技术
天线|RF射频|微波|雷达技术
EDA设计william hill官网
PCB设计william hill官网
DFM|可制造性设计william hill官网
Protel|AD|DXPwilliam hill官网
PADS技术william hill官网
Allegrowilliam hill官网
KiCad EDA 中文william hill官网
proteuswilliam hill官网 |仿真william hill官网
威廉希尔官方网站 设计与测试
威廉希尔官方网站 设计william hill官网
电子元器件william hill官网
LabVIEWwilliam hill官网
Matlabwilliam hill官网
传感技术
测试测量技术
DIY及创意
综合应用与活动
电机控制
发烧友官方/活动
模拟技术william hill官网
机器人william hill官网
USBwilliam hill官网
音视频技术
综合技术交流
小组
厂商
龙芯技术社区
先楫半导体HPMicro
其利天下技术小组
瑞萨单片机william hill官网
芯海科技william hill官网
飞凌嵌入式william hill官网
国民技术william hill官网
飞腾派开发者社区
创龙科技william hill官网
米尔电子
技术
Linuxwilliam hill官网
单片机学习小组
嵌入式学习小组
电子行业动态
工程资源中心
电磁兼容设计与整改
物联网技术
汽车电子技术william hill官网
氮化镓技术社区
HiHope开发者社区
高校
东莞理工学院电子协会
西安电子科技大学西电实验室
深圳大学电子协会
桂林电子科技大学机电工程协会
湘潭大学电子科技协会
名人
张飞硬件学习小组
韦东山Linux嵌入式课程社区
黄工无刷电机学习
MILL小眼睛FPGA小组
龙哥 Labview 学习群
淘贴
开源硬件项目分享
开发板免费试用
沁恒微CH32V307试用合集
芯昇RISC-V开发板试用合集
乐鑫ESP32-C3试用合集
活动
设计大赛
瑞萨RA4M2物联网网关设计挑战赛
华秋电子x全志在线开源硬件设计大赛
RT-Thread 创新设计大赛
星核计划-高云FPGA开发者计划
OpenHarmony成长计划学生挑战赛
RT-Thread全球巡回线下培训
国民技术N32开源移植挑战赛
开发板试用
【创客营】新品Vision Board开发板免费评测
龙芯2K0300蜂鸟开发板免费试用
米尔-STM32MP135开发板-入门级MPU设计平台
风火轮YY3568开发板免费体验
【新品试用】英飞凌PSoC 6 RTT开发板试用
正点原子STM32战舰V4开发板
【有奖评测】为昕原理图设计EDA软件免费试用
社区之星
杨永胜:兴趣加努力,嵌入式工程师最好的前进之路
谢小龙:五年嵌入式开发,一个“博大”+“精深”的老鸟
罗大信:从工程师到创始人,我的20年嵌入式经验
刘建华:如果不想虚度一生,那就学习一辈子
贺婷婷:不退则进,遇到问题面对它,你会登上新台阶
罗除博士:共同携手,助力鸿蒙生态冲破牢笼
官方活动
【有奖征文】赢千元现金!发文章、上传资料送壕礼
每日打卡活动,赢取OH定制礼品
RISC-V MCU 技术社区打卡活动
【有奖打卡活动】2023年打卡计划
【书单评测】27本电子工程书籍
【书籍评测】PADS PCB设计指南
【精选集合】野火鲁班猫创意氛围赛作品
技术峰会/沙龙
2024 KiCon Asia KiCad 用户大会
2023 电子工程师大会暨第三届社区年度颁奖
开放原子开源基金会OH技术峰会
电子设计与制造技术研讨会
PCB设计与制造技术研讨会
2022 OH主题线下技术沙龙
2022开放原子全球开源峰会
专栏
技术原创
从编程到应用——从零开始学ARM
基于STM32设计的数码相册
基于DWC2的USB驱动开发-IAD描述符详解
基于CW32L083的线控器方案设计
RISC-V内核RC遥控车拆解:空心杯电机+2.4G跳频控制
最新资讯
生成式AI火爆,OpenAI获软银15亿美元新投资
“第三代家庭投影”制高点,投影光阀3LCoS有何过人之处?
ASML 2023年末爆单,中国贡献营收翻倍
光通信上车,相关方案已就位
北斗赋能开启“万亿市场”!迎北斗三代设备升级机遇
企业
推荐企业号
Aigtek安泰电子
斯丹麦德电子
张飞实战电子
芯佰微电子
其利天下技术
道生物联
扬兴科技
飞凌嵌入式
米尔电子
RA生态工作室
生态平台
OpenHarmony生态平台
RISC-V生态平台
瑞芯微Rockchip生态平台
精选内容
大咖齐聚,飞凌嵌入式技术创新日活动
米尔NXP i.MX 93开发板免费评测试用
Docker容器安装及运行测试方案详解
用时钟频率精度测量威廉希尔官方网站 进行时间校验
基于Realtek的智能语音服务解决方案
问答
年度榜单
2022年度TOP榜单——模拟技术william hill官网 问答
2021年度TOP榜单——威廉希尔官方网站 设计william hill官网 问答
2021年度TOP榜单——电源技术william hill官网 问答
2021年度TOP榜单——电机控制技术william hill官网 问答
高手问答
电子老顽童带你看懂威廉希尔官方网站 设计
资深产品硬件研发工程师,与你讨论威廉希尔官方网站 设计!
layout leader工程师任工谈PCB设计
与搞电源小哥一起揭秘电源设计那些难点
下载
电子书
电源技术知识总结
常用电源设计技巧图解
开关电源噪声-EMC(上)
开关电源噪声-EMC(下)
凡亿威廉希尔官方网站 -PCB封装设计指导白皮书
精华资料
龙芯生态白皮书
中国物联网操作系统市场研究白皮书
AIGC(GPT-4)赋能通信行业应用白皮书
OPPO 《6G:极简多能 构建移动的世界》白皮书
智慧充电桩物联网技术白皮书
常用软件
Altium Designer21.9.2软件安装包下载
Cadence SPB OrCAD Allegro 17.4安装包及补丁下载
MATLAB 2020软件安装包下载
PADS 软件下载
LabVIEW 软件下载
学院
课程
直播
开发板购买
更多
电子发烧友
电子新闻
电子威廉希尔官方网站
技术文库
行业应用
电子标签
资料下载
电子元器件
技术研讨会
在线研讨会
特色服务
企业号
硬声APP
发烧友APP
产品库
积分商城
VIP会员
签到
经验
淘贴
华秋智造
PCB计价
SMT计价
元器件采购
BOM计价
Layout计价
钢网计价
PCB下单助手
工程师工具
PCB在线检查
华秋CAM
datasheet查询
替代料查询
免费样品申请
在线计算工具
工程师专区
品牌厂商查询
华秋DFM
帖子
搜索历史
清空
搜索热词
本版
帖子
用户
发 帖
提问题
发经验
发资料
发讨论
发视频
草稿箱
登录/注册
完善资料让更多小伙伴认识你,还能领取
20
积分哦,
立即完善>
3天内不再提示
每日签到
发烧友10周年庆典,全网超值优惠来袭!千元现金券,下单抽奖赶紧参与》》
电子发烧友william hill官网
/
嵌入式william hill官网
/
嵌入式william hill官网
威廉希尔官方网站 图及DIY
电源技术william hill官网
综合技术与应用
无线通信william hill官网
EDA设计william hill官网
测试测量william hill官网
招聘/交友/外包/交易/杂谈
官方社区
ARM技术william hill官网
STM32/STM8技术william hill官网
嵌入式技术william hill官网
单片机/MCUwilliam hill官网
RISC-V技术william hill官网
瑞芯微Rockchip开发者社区
FPGA|CPLD|ASICwilliam hill官网
DSPwilliam hill官网
/
讲讲调试程序的重要方法—打印日志
【优惠升级】华秋PCB首单最高立减100元,SMT免费贴片!!!
[经验]
讲讲调试程序的重要方法—打印日志
hsdou月半
2022-6-20 17:14:00
3513
单片机
Linux系统
I2C驱动
扫一扫,分享给好友
复制链接分享
链接复制成功,分享给好友
0
4
今天来讲讲调试程序的重要方法:打印日志。无论开发何种程序,
单片机
,
手机
APP,电脑客户端,还是服务器,日志都是最基础也是最重要的调试手段。
手机APP,电脑客户端和服务器的开发环境往往提供了功能丰富的日志接口。比如linux的syslog模块提供如下日志函数:
其记录的每条日志包含时间,级别,来源和内容,可根据配置过滤低级别的日志。下图中的日志,红框是时间,黄框是来源,绿框是内容。
单片机的开发则大不相同,其开发环境中往往不会提供日志接口。单片机的驱动库往往只提供基础的操作外设的接口,如uart,i2c,spi,而不提供高层次的SDK。这就需要我们自己来设计。
单片机日志接口比较简单的实现,是将日志从串口输出,在电脑上可通过诸多串口软件来查看。向串口输出字符嘛,看着简单,其实大有文章。简陋的设计与精心周全的设计将使日后的代码开发和调试产生巨大差异。
简陋的设计
先看一个简陋至极的接口:
log_print将buf的前len字节的内容输出到调试串口(uart1),其实就是对串口输出函数进行简单的封装,使用户在输出日志时不需要传入串口实例。
大家觉得这个日志接口有没有问题,好不好用呢?
该接口很简陋,这是毫无疑问的。不仅如此,它存在一个非常不合理的设计:既然是打印字符串,那就不需要len参数。因为字符串以'