解决 Linux 中 Jetson Nano (Linux) 和 RS485-USB 转换器之间的通信问题

解决 Linux 中 Jetson Nano (Linux) 和 RS485-USB 转换器之间的通信问题

我的 Jetson Nano(运行 Linux)和 RS485-USB 转换器之间遇到通信问题。我正在寻求帮助来解决这个问题。以下是详细信息:

转换器传感器 我使用的是QinHeng Electronics CH340串行转换器以及ZE03传感器,该传感器具有RX/TX电缆。我已验证传感器工作正常。我的开发环境由 Jupyter Notebook 和 Python 3.10 组成。

我面临的问题是,尽管在 Linux 上建立了 USB 连接并打开了端口,但通信并未发生。

这是我使用过的代码:

import serial
import time

SERIAL_PORT = '/dev/ttyUSB0'
BAUD_RATE = 9600

# Initialize the serial port
ser = serial.Serial(SERIAL_PORT, BAUD_RATE, timeout=1)

# Set sensor mode as Q&A
ser.write(b'\xFF\x01\x78\x04\x00\x00\x00\x00\x83')  # Command to request gas data
time.sleep(0.1)
response1 = ser.read(9)  # Read response data
print(response1)

ser.write(b'\xFF\x01\x86\x00\x00\x00\x00\x00\x79')  # Command to request gas data
time.sleep(0.1)
response2 = ser.read(9)  # Read response data
print(response2)

ser.close()

我收到的输出如下:

b' '
b' '

我没有得到任何回应。此外,我尝试使用 Jetson Nano 上的 UART 8 和 10 引脚连接传感器,但遇到了同样的问题。

为了进一步调试,我修改了串口配置并再次尝试:

SERIAL_PORT = '/dev/ttyTHS1' # Just changed the port
BAUD_RATE = 9600

# Initialize the serial port
ser = serial.Serial(SERIAL_PORT, BAUD_RATE, timeout=1)

# Set sensor mode as Q&A
ser.write(b'\xFF\x01\x78\x04\x00\x00\x00\x00\x83')  # Command to request gas data
time.sleep(0.1)
response1 = ser.read(9)  # Read response data
print(response1)

ser.write(b'\xFF\x01\x86\x00\x00\x00\x00\x00\x79')  # Command to request gas data
time.sleep(0.1)
response2 = ser.read(9)  # Read response data
print(response2)

ser.close()

我收到的输出如下:

b'\xffx\x01\x00\x00\x00\x00\x00\x87'
b'\xff\x86\x00\x0b\x02\x00\x00\x00m'

我已经从互联网上下载了驱动程序文件并确保其安装正确。我不认为这个问题与权限问题有关,因为我已在rules.d文件夹中添加了驱动程序文件。

为了验证是否存在任何与驱动程序相关的问题,我执行了以下命令:

dmesg | grep ch341

根据输出,驱动程序似乎不是问题的原因,因为 Jetson Nano 检测到了 USB。

当我写终端时

ls -l /dev/ttyUSB0

输出是

crw-rw-rw- 1 root dialout 188, 0  7월  6 10:22 /dev/ttyUSB0

对于解决此通信问题的任何帮助,我们将不胜感激。谢谢你!

相关内容