串口接收不到数据之电阻虚焊bug分析思路
单片机和EC移远通信模块进行通信,相同的代码运行在相同的硬件上,但是一个能联网,一个因为没有EC的应答连不上网。
开始分析,排除软件问题,给EC模块发为什么没应答?
1.发送失败
2.接收失败
排除情况2,因为在EC模块上电的时候,能收到EC的准备命令RDY
但是为什么我用飞线能和EC正常通信?用单片机的程序就不行呢?
这里飞线可以正常同学排查EC模块本身问题,用万用表的蜂鸣器档测。
发现EC的接受引脚和单片机的引脚没有蜂鸣器响的声音。
1.这两个模块之间的电阻太大
2.是断路状态。
检查单片机的连线发现,EC模块和单片机之中间夹着8位移位器YF08E,看了下他的作用
断电的时候,输入是低。所以高阻态,蜂鸣档量两侧不响。
说要不响不代表两个模块的串口引脚没有连接,实测,YF08E的左侧和EC模块是通的,蜂鸣档响。
YF08E的右侧和单片机是通的。所以单片机到移位器YF08E是通的。为什么只能收不能发呢?
怀疑是贴片电阻没焊好,因为只一个地方我动过,用胶打上了
OK,找到具体问题,扔给硬件工程师就好了。懒得去焊贴片电阻。