擅长:python、mysql、java
<p>这不是一个完美的解决方案,但我找到了一种方法来确切地知道有多少字节在路上。在</p>
<p>在Arduino上,我指定了缓冲区的最大大小(128),添加我的数据,然后将其余的归零,然后发送整个数据。在Pi上,我接收整个缓冲区,然后第一件事就是过滤<code>\x00</code>字符。这并不完美,但它目前有效。在</p>
<pre><code>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.
</code></pre>