[导读]关注星标公众号,不错过精彩内容作者|strongerHuang微信公众号 | 嵌入式专栏单片机开发中,打印输出比较常见,也比较重要,今天就为大家分享一下常见的打印输出内容以及区别。1写在前面在MCU项目中,printf主要用于打印输出一些调试信息。比如:程序执行出错,输出相关错误...
关注 星标公众号,不错过精彩内容作者 | strongerHuang微信公众号 | 嵌入式专栏单片机开发中,打印输出比较常见,也比较重要,今天就为大家分享一下常见的打印输出内容以及区别。1写在前面
在MCU项目中,printf主要用于打印输出一些调试信息。比如:程序执行出错,输出相关错误提示信息。
做的好的项目,会通过打印信息生成或保存日志信息,2printf输出方式
本教程主要是针对MCU的printf打印输出,常见的方式:1.UART打印输出2.仿真打印输出3.SWO打印输出4.JLink-RTT打印输出除仿真之外,其它三种都是基于MCU硬件打印输出。从打印效率来说:UART < SWO < JLink-RTT。每一种printf打印输出方式应用场景不同,也各有各的特点。
3实验现象
先让大家从实验现象了解一下printf的内容,后面文章讲述具体的配置。3.1 UART打印输出这种printf是最常见的使用UART串口输出方式,需要占用一个硬件UART串口。3.2 仿真打印输出只在集成开发环境中模拟printf仿真输出,不需要连接开发板(硬件MCU)即可实现。
3.3 SWO打印输出SWO:Serial Wire Output,串行线输出SWD:Serial Wire Debug,串行线调试SWV:Serial Wire Viewer,串行线查看器
SWO输出,需要多一根SWO(引脚)线,同时需要借助SWV(查看器)查看数据,分享4种方法:·基于Keil的『Debug(printf)Viewer』·基于IAR的『Terminal IO』·基于ST-LINK Utility的『Serial Wire Viewer』·基于J-Link的『SWO Viewer』1.基于Keil的『Debug(printf)Viewer』2.基于IAR的『Terminal IO』3.基于ST-LINK Utility的『Serial Wire Viewer』4.基于J-Link的『SWO Viewer』
说明:前面2种可以分别基于ST-Link和J-link工具查看,第三种基于ST-Link查看,第四种基于J-link查看。3.4 JLink-RTT打印输出这种方式不需要使用UART串口,也不需要额外SWO引脚,但需要在代码中添加相关代码。4软、硬件工具及其它说明
该教程使用的软件及工具有点多,默认大家已经安装并掌握使用方法。4.1 软件工具1.STM32CubeMX请参看:【专栏】STM32CubeMX系列教程2.Keil MDK-ARM请参看:【专栏】Keil MDK-ARM系列教程3.IAR EWARM请参看:【专栏】IAR系列教程4.STM32 ST-LINK Utility请参看:【专栏】ST-Link资料5.J-Link / J-Trace下载地址:https://www.segger.com/downloads/jlink4.2 硬件1.MCU开发板原则上Cortex-M3,M4都行,本教程基于STM32F0、F1、F4系列进行讲述。2.下载调试器3.PC电脑当然推荐Windows电脑,因为MDK-ARM只支持WIndows系统。4.3 其它说明1.源代码工程下载为方便大家学习,本系列教程将提供对应源代码工程,供大家下载。公众号后台回复关键字“printf”获取。2.关于仿真输出现在开发板很便宜(相比以前),而且仿真和实际可能存在差异,故我不推荐大家软件仿真。
------------ END ------------后台回复『单片机』『printf』阅读更多相关文章。欢迎关注我的公众号,回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。单片机、开发工具、编程技术、行业资讯等相关内容(关注并回复“1024”查看更多精彩内容)。" data-from="0">欢迎关注我的视频号:点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
SHT11是Sensirion公司推出的数字式温湿度传感器,采用CMOSens™技术将温湿度传感、信号放大、A/D转换、校准数据存储及I²C类串行接口集成于单芯片。与标准I²C协议不同,SHT11的接口为“类似I²C”的...
关键字:
SHT11
单片机
I²C
很多嵌入式开发者天天写单片机代码、烧录程序调试功能,却很少真正把它的完整运行逻辑串起来。你可能知道单片机里有CPU、RAM、ROM,也知道写的C代码会被编译成机器指令,但你未必清楚从按下复位键的那一刻开始,芯片内部的每一...
关键字:
单片机
芯片
在2000年到2010年的单片机黄金时代,消费电子、工业控制设备里跑的几乎都是8位、16位的早期MCU芯片。那时候没有现在成熟的硬件加密核、OTA固件签名这类方案,开发者却要面对固件被轻易破解、山寨产品快速抄板的行业痛点...
关键字:
单片机
MCU
很多单片机开发者在调试通信功能时,都遇到过类似的“玄学”问题:同样的代码在实验室里跑完全正常,拿到量产设备里就随机丢包;I2C传感器偶尔返回乱码,用示波器抓波形却看不出明显异常;UART串口在高波特率下,只要设备靠近电机...
关键字:
单片机
传感器
在汽车电子、石油钻探和工业控制领域,单片机往往需要在-40℃至125℃的极端温差下持续工作。片内SRAM通常只有几十KB,难以满足数据采集和缓冲需求,而外部SRAM提供了容量扩展的可能,但高温环境对其稳定性构成了严峻挑战...
关键字:
工业高温场景
单片机
在物联网与工业控制设备的实际运行中,系统状态的可观测性直接决定了故障排查的效率。然而,许多低成本单片机受限于内部RAM资源,难以长期驻留大量运行日志,一旦遭遇异常重启或意外断电,内存中的调试信息便会瞬间丢失,导致售后团队...
关键字:
单片机
NOR Flash
在工业控制与物联网终端设备中,EEPROM存储的计数器数据(如设备开机次数、运行时长)常因突发断电导致数值丢失或错乱。传统方案采用页写入模式,单次修改需重写整页数据(通常64-128字节),不仅加速存储器磨损(EEPRO...
关键字:
EEPROM
单片机
在资源极度受限的8位单片机场景中,64B RAM往往是整机系统最稀缺的硬件资源——除去堆栈、全局变量和寄存器映射占用的空间后,留给用户自定义数据的可用内存通常不足30B,想要同时实现3路传感器的实时缓存几乎是常规编程思路...
关键字:
8位
单片机
RAM
外部脉冲明明到了,计数却偶尔少一次,这类故障常被误判成传感器抖动。单片机中断链路如果把屏蔽窗口、标志位和优先级混在一起处理,真实边沿很容易在软件忙碌时消失。
关键字:
单片机
中断
屏蔽窗口
在嵌入式产品的全生命周期里,STM32的Flash就像设备内部的“数字保险柜”,既存放着工程师熬夜写出来的核心固件代码,也保存着设备运行过程中积累的关键校准参数、用户配置数据。
关键字:
STM32单片机
单片机
ATMEGA8是Atmel公司(现已被Microchip收购)推出的8位AVR架构单片机,自问世以来就凭借高性能、低功耗、高性价比的特点,成为嵌入式入门开发、小型控制项目的首选芯片,至今仍是电子爱好者和工业小型控制场景的...
关键字:
单片机
电源
TI 大学计划深耕校企合作三十载,依托实验室、赛事与课程改革,协同高校培育电子信息领域创新人才。
关键字:
AI
智能汽车
单片机
PWM 波形偶尔抖一下,后级电机或电源环路就可能把它放大成噪声和发热。单片机定时器虽然能自动翻转引脚,但更新时刻和死区配置不对,输出并不会天然稳定。
关键字:
单片机
PWM
定时器
I2C 偶发不响应时,复位主控往往只能暂时恢复,因为总线状态可能已经被外部器件留在半截事务里。单片机若没有处理 SDA 锁低和上拉边界,软件重新初始化也未必能重新拿回总线。
关键字:
单片机
I2C
SDA
参数偶尔丢失或升级后配置变乱,常常不是存储单元突然坏了,而是写入流程没有尊重 Flash 的物理边界。单片机内部 Flash 若把擦写粒度和掉电窗口处理得太粗,少量配置也会被写成高风险操作。
关键字:
单片机
Flash
掉电保护
ADC 数值缓慢漂移时,问题未必在传感器,也未必靠平均就能消掉。单片机内部转换器如果没有满足采样保持和参考回流条件,软件读到的只是前端妥协后的电压。
关键字:
单片机
ADC
传感器
看门狗本该抓住死机,却常在现场变成莫名重启的来源。单片机系统如果没有把喂狗条件和最坏执行时间绑定,复位既可能误触发,也可能在真正卡死时失效。
关键字:
单片机
看门狗
复位
设备偶发重启时,很多人先怀疑程序跑飞,其实更常见的是电源刚好落在不稳定边界。单片机若没有把欠压复位和上电延时配成一条完整启动链,复位脚会比软件更早暴露问题。
关键字:
单片机
复位
晶振
计时偏差通常不是某个 delay 写错,而是时间基准从源头就不稳定。单片机定时若同时受晶振误差、分频取整和同步延迟影响,软件看到的一秒就可能不是硬件世界的一秒。
关键字:
单片机
计时偏差
晶振
待机电流比预算高,问题不一定出在芯片休眠模式选错,而是板上仍有电气状态没有收干净。单片机进入低功耗前,如果 IO 和唤醒源没有逐项定义,电池寿命会被细小电流慢慢吃掉。
关键字:
单片机
耗电
IO