我想使用A Pyserial通过串行端口发送消息。串行构造函数的参数之一是“字节化”。我一直在尝试序列化。该文档有点模糊,我是Python和串行通信的新手。这只是设置字节可以保留的最大值还是与签名字节有关?谁能清除为什么我要在8次以上使用7位?我一直在搜索,但没有找到答案。

谢谢

有帮助吗?

解决方案

这是指每个传输字符中的数据位数。从 维基百科:

数据位

每个字符中的数据位数量可以为5(对于Baudot代码),6(很少使用),7(对于true ASCII),8(对于任何类型的数据,因为这与字节的大小相匹配)或9 (几乎没有使用过)。 8个数据位几乎普遍用于新的应用程序中。 5或7位通常只使用较旧的设备(例如电信器)才有意义。

大多数串行通信设计首先在每个字节LSB(最不重要的位)中发送数据位。该标准也称为“小末日”。也可能(但很少使用)是“大恩德尼亚人”或MSB(最重要的位)首次串行通信。 (有关比特订购的更多信息,请参见Endianness。)位的顺序通常不可配置,但是数据只能在发送之前汇总。

其他提示

从历史上看,通常只通过串行连接发送ASCII文本,该连接适合七个位,并且第八位将用作奇偶校验标记,可以指示数据是否正确传输。

由于奇偶校验检查不会遇到均匀数量的错误,并且根本无法纠正数据,因此不是那么有价值,现代实践是使用8位数据并在更高的情况下进行错误检测和校正协议层。

简短的答案是您可能想要8位,但这取决于串行连接的另一端。

更新:从您的另一个问题中,听起来您正在编程连接的两端,并检查您的消息,因此使用8位绝对是最简单的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top