USB串口数据发送乱码
USB Serial data sending gibberish
我有一个似乎无法解决的问题。我在 raspberry pi 上使用 python 从 pi 上的 USB 连接读取(从串口转换而来)。
我可以连接到 USB 端口并开始使用代码接收数据
ser = serial.Serial("myUsbPortID", 9600)
bytes = ser.inWaiting()
print ser.read(bytes)
我知道波特率为 9600(硬件制造商文档),但出于某种原因,当我尝试读取数据流时,我得到了很多不同语言和字符形式的乱码。在我终止程序后,我的屏幕仍然在我输入时用乱码数据替换我的字符。
我确定这不是硬件发送的数据流。某处的东西正在转换东西,但我不知道它可能是什么。
当我启动设备并且它正在初始化时,我得到了可读的信息。但是当设备开始运行时,我只得到这个奇怪的字符
有没有办法将这些字符转换为实际传入的数据?
示例图片:
output screen
所以我能够通过 python 代码中的这一行解决乱码问题(对于遇到此问题的任何其他人)。
data = ":".join("{:02x}".format(ord(c)) for c in bytes)
其中 bytes 是原始数据,我将其用“:”分隔。
似乎连接和波特率没问题。幸运的是,数据能够转换为十六进制。
我有一个似乎无法解决的问题。我在 raspberry pi 上使用 python 从 pi 上的 USB 连接读取(从串口转换而来)。
我可以连接到 USB 端口并开始使用代码接收数据
ser = serial.Serial("myUsbPortID", 9600)
bytes = ser.inWaiting()
print ser.read(bytes)
我知道波特率为 9600(硬件制造商文档),但出于某种原因,当我尝试读取数据流时,我得到了很多不同语言和字符形式的乱码。在我终止程序后,我的屏幕仍然在我输入时用乱码数据替换我的字符。
我确定这不是硬件发送的数据流。某处的东西正在转换东西,但我不知道它可能是什么。
当我启动设备并且它正在初始化时,我得到了可读的信息。但是当设备开始运行时,我只得到这个奇怪的字符
有没有办法将这些字符转换为实际传入的数据?
示例图片: output screen
所以我能够通过 python 代码中的这一行解决乱码问题(对于遇到此问题的任何其他人)。
data = ":".join("{:02x}".format(ord(c)) for c in bytes)
其中 bytes 是原始数据,我将其用“:”分隔。 似乎连接和波特率没问题。幸运的是,数据能够转换为十六进制。