树莓型Pythonbus.阅读者

2024-06-26 00:17:48 发布

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

是否有一个Python函数会像电线可用函数来获取线路上的所有数据,而不必指定要获取多少字节?在

这就是我现在所拥有的,它运行得很好,但我必须知道有多少数据正在传输,否则它将提供意想不到的结果。在

for i in range(0, 13):
 data += chr(bus.read_byte(address));

谢谢!在


Tags: 数据函数inforreaddata字节address
2条回答

我把PIGPIO库用于raspberrypi上的i2c命令,它的功能更接近有线。在

http://abyz.co.uk/rpi/pigpio/python.html#i2c_read_device

我想这就是你想要的功能。在

这不是一个完美的解决方案,但我找到了一种方法来确切地知道有多少字节在路上。在

在Arduino上,我指定了缓冲区的最大大小(128),添加我的数据,然后将其余的归零,然后发送整个数据。在Pi上,我接收整个缓冲区,然后第一件事就是过滤\x00字符。这并不完美,但它目前有效。在

for i in range(0, 128):
    data += chr(bus.read_byte(address))

print repr(data) 
    #prints the whole string as it is received

data = filter(lambda a: a != '\x00')

print repr(data)
    #prints the string without any '\x00' characters.

相关问题 更多 >