串口通信是指外设和计算机、或外设和外设之间通过数据信号线、地线等按位进行传输数据的一种通信方式。该通信方式的通信格式包括起始位、数据位、校验位、停止位,串口通信的特点为成本低但传输速度慢。串口通信的距离可以从几米到几千米。总结了一份排查指南,希望可以给大家提供一些排查问题的方向和办法。上面简单介绍了一下串口通信,接下来让我们进入正题了。我们排查串口通信问题的方向基本为以下几部分
1.检查中间件
串口通信必然存在发送端和接收端,且两者通过中间件(例如导线),遇到问题,首先应该保证导线连接正常。如果这一部分没有确定,直接排查其他方向,很可能在做无用功。
2.排查硬件层
通过逻辑分析仪、示波器等仪器来判断发送端、接收端在发送、接收、空闲时的引脚波形是否正常。串口空闲时为高电平,有数据时才会有电平变化。同时需要确定电压是否正常。波形测量的位置先从最终点开始测量,然后依次排查中间部分的探测点,来判断问题位置。
如果发现波形变形、失真、电压不正常等情况,请让聚英电子硬件工程师协助进行排查。在其起始点可以看到波形,但是终点看不到,需要使用万用表来确定是否引脚存在虚焊。
3.检查串口驱动层
如果排查了硬件无问题以后,但是发送端串口没有波形,这时候就需要检查串口驱动是否配置成功了。可以先将发送端的Tx、Rx引脚短接,进行回环测试。最好先用一个简单例程进行测试,尽量排除多个变量的影响。排查时需要特别注意的是,不能只看代码逻辑,要注重实际调试,善于利用软件调试窗口来观察相关寄存器的值。
4.应用协议层
通过以上方向的排查,可以证明自发自收没有问题。接下来就验证双方是否可以正常通信。应用协议层可能存在的问题有:
①发送端与接收端数据协议有问题,例如CRC、帧头帧尾校验、解析数据包等方面。
②发送端与接收端串口配置的参数:波特率、校验位不一致,导致无法通信。