使用pyserial控制CH341串口温控器失败,求排查指导
pyserial控制CH341温控器问题求助
我是pyserial及串口通信领域的新手,现遇到如下问题:
我有一台搭载CH341 USB桥控制器的温控器,厂商提供的远程控制软件存在bug,因此希望使用Python的pyserial库替代该软件。
从Windows设备管理器获取串口参数并配置pyserial,同时用串口嗅探器捕获了厂商软件设置10.5℃时发送的十六进制命令:01 06 00 00 00 69 49 E4(其中69对应十进制105)。但发送该命令后,温控器未修改温度,执行ser.readline()仅收到空值b""。
我的代码如下:
import serial ser = serial.Serial() ser.baudrate = 9600 ser.port = "COM3" ser.timeout = 5 ser.stopbits ser.open() # Serial<id=0x233e6e2e1a0, open=True>(port="COM3", baudrate=9600, bytesize=8, parity="N", stopbits=1, timeout=5, xonxoff=False, rtscts=False, dsrdtr=False) ser.readline() # b"" # ser.write(b"01 06 00 00 00 69 49 E4") # before i received the hint from comment below @jasonharper # 23 ser.write(bytes.fromhex("01 06 00 00 00 69 49 E4")) # 8
更新补充:
- 使用的串口参数完全复制自厂商软件运行时设备管理器中的配置。
- 串口嗅探器显示,厂商软件会持续发送固定十六进制命令:
01 04 03 E8 00 01 B1 BA、01 04 03 EE 00 01 51 BB、01 03 00 32 00 01 25 C5、01 04 03 EB 00 01 41 BA;设置10.5℃的命令仅在输入温度时发送一次。
内容的提问来源于stack exchange,提问作者Timbob
相关产品推荐
相关产品推荐

