USB串口数据发送乱码

时间:2017-01-10 03:48:48

标签: python linux raspberry-pi usb pyserial

我遇到了一个似乎无法解决的问题。我正在使用覆盆子pi上的python来读取pi上的usb连接(正在从串口转换)。

我能够连接到usb端口并开始使用代码

接收数据
ser = serial.Serial("myUsbPortID", 9600)
bytes = ser.inWaiting()
print ser.read(bytes)

我知道波特率是9600(硬件制造商文档),但出于某种原因,当我尝试读取数据流时,我会以不同语言和字符的形式获得大量的胡言乱语。在我杀死程序后,我的屏幕仍然用我输入的乱码数据替换我的字符。

我确定这不是硬件发送的数据流。某个地方正在转换东西,但我不知道它可能是什么。

当我启动设备并且它正在初始化时,我得到可读信息。但是当设备开始运行时,我只会得到这个奇怪的字符

有没有办法将这些字符转换为它实际进入的数据?

示例图片: output screen

1 个答案:

答案 0 :(得分:1)

所以我能够用python代码上的这一行来解决乱码的问题(对于其他有这个问题的人来说)。

data = ":".join("{:02x}".format(ord(c)) for c in bytes)

其中bytes是原始数据,我将它'''分隔。 似乎连接和波特率都没问题。幸运的是,数据能够转换为hex ok。