与PySerial进行串行通信

问题描述

晚上好!

我正在尝试与Windows上通过COM口(通过RS232)连接到COM8端口的接口单元通信,而我很难理解它的功能

第一手,我需要以ascii格式发送数据,以便从设备中接收答案。 当我运行下面的代码时,设备正在接收某些东西(指示灯闪烁),随后是警报指示灯。对我来说并不奇怪,因为我仍在努力发送格式。

但是,主要的问题是设备没有收到应有的反馈(应该将警报代码从设备发送回我的电脑)。

您有什么技巧可以使我更好地开始这个项目?

import serial

s = serial.Serial('COM8')

string = 'M0CRLF'
code=([ord(c) for c in string])
s.write(code)

res=s.readline()
print(res)

解决方法

CRLF是来自机械打字机的单词,分别是Carriage ReturnLine Feed的缩写。

看看ASCII码表等,它被写为控制代码,对于CR,二进制值为0x0D,对于LF为0x0A。

不限于通信,它表示在屏幕上显示文本或从键盘输入时的行尾,移至下一行的开始,或表示命令输入完成,并且是执行的分隔符命令。

在文本通讯的情况下,通常将其视为命令输入定界符并开始执行。

关于通信数据的规范,由作者决定以十六进制或缩写形式表示这样的控制代码。

所讨论的情况可能已被简化。