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

时间:2016-10-11 02:46:07

标签: python-2.7 checksum arduino-uno pyserial

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

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

我目前正在实施基本校验和流程,以验证传输数据是否已完成。从arduino我添加我传输的数据的值并设置为校验和字段,它也将被传输。然后,在计算机上,我对数据执行相同的操作,并验证总和是否等于校验和字段的值。

我的问题是。我应该担心这个问题还是已经通过USB协议执行了该任务?

如果有人可以给我一些参考,那对我来说非常有帮助。

目前我正在计算校验和:

{
    s1: 425.2,
    s2: 426.4,
    s3: 78.2,
    s4: 785.2,
    chksum: 1715
}

1 个答案:

答案 0 :(得分:0)

USB无法更正串行数据。它只是CPU用于与串口通信的bus。您想要在用于在Arduino和PC之间进行通信的协议中添加一些校验和是一个好主意。

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