很多嵌入式新手调试靠“改代码+串口打印+肉眼猜”,遇到时序问题就抓瞎。其实示波器和逻辑分析仪这两件工具,能把大多数“神秘故障”变成“一眼看穿”。本文讲讲它们分别适合干什么、怎么入门。
先区分两者。示波器看模拟信号:测电压波形、看上升沿、量纹波、抓电源跌落,是硬件调试的必备。逻辑分析仪看数字信号:只关心高低电平,能同时抓十几路信号并解码UART、I2C、SPI等协议,是软件和通信调试的利器。简单记:查模拟问题用示波器,查数字逻辑和协议用逻辑分析仪。
示波器的入门要点是“先测基准”。把探头夹到GND,确认基线稳定;再测电源,确认3.3V或5V的电压和纹波正常。新手最大的误区是一上来就测高速信号,其实很多问题出在电源上。学会调时基和幅值档位,观察波形触发点,就能抓住毛刺和异常。
示波器最经典的单片机场景是:程序跑飞时,用一个GPIO在关键位置翻转电平,用示波器看翻转间隔是否正常,立刻能定位是哪段代码耗时异常。另一个常用场景是看PWM波形和串口波形,确认时序和数据正确。手头没有示波器的,可以先从几十块钱的逻辑分析仪入门。
逻辑分析仪对通信调试帮助巨大。写I2C、SPI、串口驱动时,把SCL、SDA或TX、RX接到分析仪,抓一段波形点“解码”,协议里每个字节、每个应答都看得清清楚楚。相比靠猜和打印,解码出来的波形是“铁证”,能快速确认是主机发错、从机不答还是时序不对。
用逻辑分析仪还有个高效技巧:调试带协议栈的设备时,抓“通信发起前后的波形”对比,能定位是上层参数错还是底层时序错。再配合触发条件(比如抓特定字节前后),复杂问题也能快速缩小范围。学生党预算有限,几十块的8通道逻辑分析仪配合免费软件,功能足够覆盖大多数单片机调试场景。
最后给点建议:工欲善其事必先利其器,但工具不在贵,在于会用。先把自己的板子上“复位、电源、时钟”三个关键点测一遍,再学协议解码,你会发现调试效率提升一大截。每次遇到bug,先问自己“波形看了没有”,而不是“代码是不是又写错了”。 |