我想通过串行通信(波特率38400,奇偶校验,数据位8,停止位1)与仪器进行通信。 仪器要求STX和ETX围绕消息(STXmessageETX)。 响应也这样设置。 如果我直接发送十六进制值,则通信效果最佳。因此,对于逗号“ A 0x00 0x01”,我发送“ 41 00 01”。 每次发送命令时,都会收到响应(使用ETX或0x03作为终止符)。该响应应被读回并显示。 我该如何实现?
当前我正在做类似的事情,但是它不起作用...
import serial
import time
def SendHex(HexCommand):
Timeout = 1
portname = "COM10"
Command = str("\x02" + HexCommand + "\x03")
parity=serial.PARITY_EVEN
ser = serial.Serial(portname, baudrate = 38400, timeout = 0.1)
ser.write(Command.encode())
time.sleep (0.1)
response = ""
response = ser.readline()
ser.close()
return(response)
SendHex(74)
编辑: STX和ETX周围有<>,但显示不正确。