我在开发时,对于一个外部模块,比如I2C接口的传感器模块,经常会出现以下情形:
在某个开发环境中,程序调试无误,可以正常运行,测试结果也正常。但换了一个开发环境,或者开发板,程序处理逻辑没有问题,编译也正常,但结果就是不对。
这个时候,逻辑分析仪就该出场了。通常我的做法是,将正常状态的I2C时序信号记录下来,包括时序、时钟频率、数据分析等,然后将结果不正确的和它作对比,再反过来根据信号来分析程序哪里出了问题。像今天使用51单片机调试SHT40时,就是这样调通的。
这要是在以前,只能通过输出日志来分析,时序信号就没办法获取和分析了。
对于有连续信号输出的,有时也可以通过示波器观察、捕捉。
总之,遇到问题时,尽可能利用手中的工具帮助解决问题才是上策。紧靠分析程序,有时候很难找到问题点。
我要赚赏金
