【发布时间】:2014-05-01 11:55:44
【问题描述】:
我试过这个例子: http://arduino.cc/en/Reference/WireRead
但如果我从从机发送的字节数少于 6 个字节,主机仍会尝试读取所有 6 个字节,然后读取函数输出 -1/255。所以实际上可用的功能在这种情况下有点没用,我宁愿使用 for until 6.
知道我做错了什么或如何解决这个问题吗?我不能简单地过滤所有 255 个值,因为有时我会发送它们。我只是不明白这里的图书馆行为。
编辑:奇怪的是 read 函数返回一个 int,而不是一个字节。所以我可以看到它是 -1 还是 255。它肯定是 255 而不是 -1。如果我尝试阅读 7 次而不是使用可用功能,那么最后一次读数为 -1。从机发送错误的字节还是我可能需要上拉或这里发生了什么?
我的解决方案是读取直到读取为 -1,而不是使用可用函数。但必须有其他解决方案。
【问题讨论】: