我在Java中从串口读取数据时遇到了一个奇怪的问题。Java串口IO读取
我已经通过在其中工作的罚款线程轮询方法来读取串口数据,但我有一个要求,我需要将数据写入到串行端口和读回ACK。将数据写入串口是成功的,但我无法读回数据。这里有两个读取操作,一个在主线程中,另一个在主线程中。
一旦我接收串行写入数据我暂停其从串行端口使用标志读取数据的线程,并开始再次一次写入完成串口读取数据,但我无法读取数据。我写操作后禁止读取串口,并启用线程读取串口的线程,这里我看到串口的ACK数据。
任何可以建议是怎么回事错这个串行读操作?它不是缓冲读/写操作。
我不确定我遵循你的逻辑。你好像你一次从三个不同的线索阅读,这听起来不是一个好主意。 – gobernador
它不是三个不同的线程,而是两个线程,一个线程轮询连续读取,另一个线程在主线程中读取,只有当它执行写操作时才读取 –
虽然我仍然不知道这个原因,但我相信我理解问题。我相信他是说主线程发送一个写命令,并且有一个读(ACK-Checker),之后应该看到一个ACK,并且在另一个线程(让我们称之为“一般阅读器”)中读取一个读做每一个其他的阅读操作。问题似乎是,当他从主线程写入时,该ACK检查器没有看到ACK。如果他禁用了“ACK-checker”,那么“通用阅读器”在进行正常轮询(通常不应该)时会看到ACK。它是否正确? – Xantham