我的 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
对于解决此通信问题的任何帮助,我们将不胜感激。谢谢你!