问题描述
将Jetson Nano通过USB-RS485串口读取IMU惯性测量元件的数据、通过USB-RS232串口读取点激光传感器的数据。
试验发现,开发板与点激光传感器可以正常通讯,但是与IMU无法通讯。
测试复现
将Jetson Nano带回课题组,使用两组互联的USB-RS485与两组互联的USB-TTL进行调试。
Jetson Nano为Linux jetson-4-3系统,通讯收发使用python的pyserial模块;
PC的串口助手为XCOM。
发现:
(1)USB-TTL互相联结,一端USB插入Jetson Nano,一端USB插入PC,双边可以正常收发;
(2)USB-TTL互相联结,两端USB均插入PC,双边可以正常收发;
(3)USB-RS485互相联结,一端USB插入Jetson Nano,一端USB插入PC,发送端与接收端收发的信息不一致;
(4)在(3)的基础上,插入Jetson Nano与插入PC的USB口互换插入,发送端与接收端收发的又正常了。
问题解决
实际上,一直只发现了现象(1)(2)(3),而(4)为偶然插错之后才发现的,通过(4)实际上已经解决了问题,即改变Linux这边串口发送的硬件即可。
解决灵感
问题的解决也没有详细了解具体原理,主要是因为(我懒 )硬件设备的调试没有现成的工具。
解决问题的灵感来源于博客:ubuntu 串口助手通信收发数据不一致,通过最简单的“更换外部硬件”的方法解决了。