【发布时间】:2014-10-22 12:37:05
【问题描述】:
使用树莓派我在读取串行传输的数据时遇到问题。我的代码在另一台机器上测试时可以正常工作,但现在无法正常工作。
波特率为 9600,无奇偶校验,8 个数据位,1 个停止位,我希望程序处理可变长度的字符(有时 100K+)。代码阅读部分如下:
ser = serial.Serial('/dev/ttyAMA0', 9600, parity = serial.PARITY_NONE, timeout=1)
While True:
data = ser.read(1)
bytesToRead = ser.inWaiting()
if bytesToRead:
data = data + ser.read(bytesToRead)
encodedData = data.encode('hex')
使用此代码,只要波特/奇偶校验/等与传输系统匹配,我是否应该能够将所有字符读取为十六进制?
【问题讨论】:
-
之后您打算如何处理这些数据?
data.encode('hex')返回一串数字(不是数字)——这是你想要的吗? -
是的,我需要来自系统的十六进制,这样我就可以解码位数组/光栅数据。
标签: python serial-port raspberry-pi pyserial