如何从python中读取来自串行端口的字节数据?

问题描述 投票:0回答:2

我正在使用以下配置在串行端口上写数据,并尝试从中读取数据。实际上,我正在向连接到COM7的硬件板发送命令,并且硬件还将数据发送到该com端口。因此,我想读取该数据,但使用的是HEx或字节格式。见下文..

串行配置:'ComPort':'7','BaudRate':'115200','Parity':'O','DataBit':'8','StopBit':'1','FlowCtrl':'0','DelayPerChar ':'0','DelayPerLine':'0'

我从硬件接收的数据如下所示:b'?G \ xa1C!\ xd2 \ x94 \ n \ x82 \ xa2 \ xc1 \ xc9ee \ xb3C \ xe1'

并且应该以可读格式显示的实际数据是:我从Tera术语终端获得的$ GB00402eef。

让我知道哪种编码和解码方法将帮助我获取可读格式的数据。

python serial-port byte pyserial
2个回答
0
投票

您已使用解码了字符串

varName.decode()

字符串方法。 UTF-8足以满足您的要求。


0
投票

最后,我可以以可读的格式从接收缓冲区中读取数据作为字符串。

问题在于串行的奇偶校验配置。

您的计算机程序(发送方)和硬件(接收方)应连接到相同的奇偶校验。如果它们的奇偶校验不匹配,那么您可以从接收缓冲区中以垃圾或十六进制格式获取数据。

例如:如果硬件连接到奇偶校验无,则您的串行配置也应具有奇偶校验“无”。如果您使用奇偶校验“奇数”,则奇偶校验不匹配,并且不会以正确的格式接收数据。

© www.soinside.com 2019 - 2024. All rights reserved.