我应该使用Pyserial对通过串口传输的数据实现校验和过程吗?

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

这是我在 StackOverflow 上的第一个问题,我还在学习英语。所以恳请您的宽容。

我正在开发一个项目,需要使用Python(特别是Pyserial库)从USB串行端口接收数据。 Arduino 通过串行电缆向我发送数据,然后我从 COM 端口接收它。

我目前正在实施一个基本的校验和过程,以验证传输的数据是否完整到达。在 Arduino 中,我添加了正在传输的数据值,并将其设置为校验和字段,该字段也将被传输。然后,在计算机上,我对数据执行相同的操作并验证总和等于校验和字段的值。

我的问题是。我应该担心这个或那个任务已经由 USB 协议执行吗?

如果有人可以给我一些参考,这对我很有帮助。

这就是我目前计算校验和的方式:

{
    s1: 425.2,
    s2: 426.4,
    s3: 78.2,
    s4: 785.2,
    chksum: 1715
}
python-2.7 checksum arduino-uno pyserial
1个回答
1
投票

USB 无法纠正串行数据。它只是 CPU 用于与串行端口通信的总线。您向用于 Arduino 和 PC 之间通信的协议添加一些校验和的想法是个好主意。

RS232 是串行端口使用的一种非常常见的硬件协议。它包含对使用“奇偶校验”位进行错误检测的一些支持。如果奇偶校验位不正确,则接收到的字节将被丢弃。所以我认为这对你的情况没有多大帮助。

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