我正试图通过串口与探测器通信。制造商在PuTTY ec中执行一些命令。更改测量单位或读取某些值。我用python编写代码,但是我什么也没有收到,或者我不知道我收到了什么。以下是PuTTY配置



接下来是来自制造商的PuTTY命令示例。

以下是PuTTY终端中的代码:

我用Python编写的代码:
import serial
ser = serial.Serial()
ser.port = 'COM5'
ser.baudrate = 19200
ser.bytesize = serial.EIGHTBITS
ser.parity = serial.PARITY_NONE
ser.xonxoff = 0
ser.rtscts = 0
ser.dsrdtr = 0
ser.stopbits = 1
ser.timeout = 1
ser.open()
if ser.isOpen():
print(ser.name + ' is open...')
while True:
cmd = input("Enter command or 'exit':")
if cmd == 'exit':
ser.close()
break
else:
# ser.write(cmd.encode('ascii'))
# ser.write(bytes(cmd, 'utf-8'))
ser.write(str.encode(cmd + '\r\n')) #
out = ser.readline().decode("utf-8").strip()
print('Receiving... ' + str(out))以下是我收到的信息:
Enter command or 'exit':UNIT
Receiving...
Enter command or 'exit':exit发布于 2022-03-04 12:16:09
编辑:您可以将超时值传递给您的串行实例。尽管我不认为这是问题所在,但试着增加这一点。更有可能的是,与您通信的设备不会在其消息的末尾发送换行符/回车字符。在这种情况下,您必须使用read()。但是,您应该能够通过选中一个诸如display newline characters或display CR/LF之类的框来检查设备发送的字符。我不确定putty是否支持这一点,因为我并不真正使用它作为串行监视器,但它可能确实支持。
https://stackoverflow.com/questions/71351183
复制相似问题