我正在尝试使用 Java 从 Arduino 读取串行数据。我已遵循教程 Arduino and Java 。
到目前为止,我已经可以正常工作了,只是我没有立即读取整个串行数据。例如,Arduino 应该发送 0.71,我读入 0,然后读入 0.71 或其他组合。有时我读得很好,但更多时候,数据是 splinter 的。
我有一种预感,如果我将发送的数据类型更改为字节,我的程序就可以了,但是我需要在正在传输的数据中使用浮点精度。如何解决这个问题?
最佳答案
串行协议(protocol)(例如用于 USB 串行的协议(protocol))是面向字节的,而不是面向数据包的。因此,无法保证读取会返回另一端发送的整个“消息”,或者正如您所观察到的那样,仅返回其中的一部分,因为没有消息或数据包的概念。
相反,您需要以某种方式分隔消息 - 例如通过附加换行符 - 或在消息前添加长度字段,以便您知道要读取多少字节。
关于java - 从 Arduino 读取串行数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8467972/