当我尝试在蓝牙
之后立即从Android向Arduino发送命令字符串建立连接,Arduino没有发送响应字符串[我想也许
Arduino一无所获。]
但是如果我在写入方法之前放置一个Thread.sleep(1000)方法,它就可以工作......
有什么问题?
我是否尝试在蓝牙连接设置尚未
之前发送消息就绪
答案 0 :(得分:1)
但是如果我在写入方法之前放置一个Thread.sleep(1000)方法
尝试在Thread.sleep之后进行多次写入,以检查问题是否仅在建立连接的恰当时刻或每次写入时发生!
无论如何,根据我的经验,我会警告你一些事情:
这段代码很有用!
答案 1 :(得分:1)
把它想象成这样:乒乓球发生得太快,以至于球迷失了。
如果您在写作之前正在阅读和阅读之前写作,则会发生错误并且字符串将丢失。
所以是的,解决它的一种方法是在Thread.sleep
之间加入一些时间详细说明:
所以这种情况正在发生,因为您的jobs
仍然是arduino
,因为它还没有意识到您的sending
实际收到了android
。在thread.sleep (1000)
期间,您的arduino
已识别出android
已收到并更改为receive
模式。这就是为什么能够在一秒钟后从arduino
读取字符串的原因。
如果您愿意,可以循环发送,以便arduino尽快收到。但是,某些情况可以像循环一样接收冗余字符串。