当我将代码上传到我的Arduino而TX和RX引脚连接到我的HC-05模块时,会向TX缓冲区发送一堆随机字符,当我连接到设备时,这些字符被发送并且陷入困境的沟通。有没有办法在上传代码后清除此缓冲区?我上传时只是断开电线,但我想找到一种更简单的方法。谢谢!
答案 0 :(得分:1)
唯一的另一种方法是每次发送一个可能几个字节的标头来发送消息。另一个程序可以在开始执行命令之前等待这些字符。在从缓冲区中读取这些字符之前,您只需执行Serial.read()循环即可清除垃圾。
另外,如果垃圾字符真的搞砸了你的程序,你可能还想考虑创建某种原始校验和以确认正确的传输。
需要帮助编码?让我知道。
答案 1 :(得分:1)
好吧,如果您使用串口同时发送数据和程序,您当然会在BT的另一端看到它...可能的解决方案:
我不喜欢djUniversal的解决方案,因为你无法控制PC传输的内容;例如,如果您决定使用字节0xAA来表示传输的开始,那么如果PC发送0xAA,则另一个设备认为Arduino正在传输。选择更长的字节序列会有所帮助,因为序列变得不太可能,但是......
此外,您必须在EVERY命令发送它,而不仅仅是在开始时,因为您必须重置arduino以对其进行编程(因此其他设备不知道何时停止考虑数据)。