芯片和传感器进行通信接口是485,硬件在芯片本身串口的基础上使用转换芯片。MAX3481ESA-NC
问题点:用串口485线连接传感器,串口模拟协议帧,传感器能正常响应返回数据。芯片写好发送包后,运行程序貌似没有收到传感器返回的数据。
分析过程:
一、因传感器先测过,所以先看芯片这边。程序是定时发送 0x01 0x03 .... MODBUS协议,不过多叙述
将串口转485接至开发板:
发现收到“固定”数据: 0x7f 0x7f 0xff 0xff 0xfc 0x69
1、第一点怀疑项目内发送接口针对数据进行了处理,
逐步排查发现并没有特别之处,调用了HAL层的串口DMA发送函数。
2、改排查配置:UART、DMA
也没有发现错误之处。
3、一般固定乱码也有波特率不匹配的原因,可配置是正确的。转而分析CLK时钟配置
还是没有发现错误之处。
4、时钟乱了应该不会固定格式把,很奇怪。没有头绪,转而用芯片另一个串口进行测试
mlgb 还是固定的数据,简直找不到任何蛛丝
5、后面看着自己的串口线太短连设备有点弯折,想着重新做一个和设备连的线。
没错!!!解决了!!!
后记:工具要检查好啊,没有一点波动也很奇怪。