显示端口号码会出错

时间:2016-04-22 14:55:11

标签: python arduino decode

我正在尝试从外部源(Arduino)解码8位(或1个字节)的数据,并使用Python将它们转换为数字。

这是我正在使用的代码:

clean

使用它,我可以打开端口并读取Arduino发送的数据。

当我构建它时,我收到此错误:

arduinoData = serial.Serial("com4", 9600) while True: if arduinoData.inWaiting()>0: print "Reading data" arduinoString = arduinoData.read(arduinoData.inWaiting()) ardString= int(arduinoString, 2) for string in ardString: print string else: print "There is no data"

我试图用很多变化解码数据,但我无法得到我需要的数字。我该如何转换这些数据?

希望你能帮助我。

-------编辑--------

我设法使用以下行获得二进制数字(我希望):

ValueError: invalid literal for int() with base 2: '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\

这一行给了我这个错误:

while True: if arduinoData.inWaiting()>0: print "Leyendo datos" arduinoString = arduinoData.read(arduinoData.inWaiting()) ardString = ' '.join(format(ord(x), 'b') for x in arduinoString) for string in ardString: string = int(ardString, 10) print string

这些二进制文件是对的吗?我试图将它们转换为整数,如上所示,但它给我带来了错误。

1 个答案:

答案 0 :(得分:1)

ord就是你所需要的,它会产生一个int,然后你就完成了。

bytes = map(ord, arduinoString)
for byte in bytes:
    print byte