使用Python通过串口接收的数据中的错误

2024-04-27 20:36:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用PySerial向外设发送数据。然而,在接收到的数据中有时会出现错误。你知道吗

import serial

dongle = serial.Serial("/dev/ttyUSB0", 9600)

dongle.write("Some data\n")

然后,Some data\n被传送到外围设备。你知道吗

有时效果很好,但有时接收到的数据会出现错误:Somata\nSom a\n,等等

如何解决这个问题?你知道吗


Tags: 数据devimportdata错误serialsome发送数据
1条回答
网友
1楼 · 发布于 2024-04-27 20:36:26

我怀疑你需要在串行写入中添加字符间延迟。不幸的是,这样的东西在PySerial中是不可用的。有一个inter_byte_timeout,但那是用于读取的。你知道吗

比如:

import serial
import time

def write_with_delay(command):
    while len(command)>0: # Loop till all of string has been sent
        char_to_tx = command[0] # Get a
        dongle.write(char_to_tx)
        command = command[1:] # Remove sent character                                
        time.sleep(0.01)

dongle = serial.Serial("/dev/ttyUSB0", 9600)
write_with_delay('Some data\n')

它将发送字符串,每个字符之间有10毫秒(0.01秒)的延迟。通常,在代码中添加任意延迟是一件坏事,但对于串行通信来说,这有时是必要的。你知道吗

相关问题 更多 >