擅长:python、mysql、java
<p>简而言之,软件和硬件之间有一些交互作用。我不知道你是怎么阻止传输的。我怀疑您所做的一切实际上都是在停止发送中间字节的字节,因此在您启动备份时注入一个新的字节。这个时间。睡觉()部分原因可能是某些硬件缓冲区溢出,并且丢失字节,从而导致对齐偏移。一旦你开始从一个浮点中获取几个字节,从另一个浮点中获取几个字节,你就会开始得到错误的答案。在</p>
<p>我注意到的一件事是你没有任何对齐机制。这通常很难用UART来实现,因为你只能发送字节。一种方法是来回握手。计算机说重新启动,硬件重新启动连接(停止发送东西,清除它的w/e缓冲区,等等),然后发送一些魔术,比如0xDEADBEEF。然后计算机就可以找到这个0xDEADBEEF并知道下一条消息将从哪里开始。您仍然需要了解硬件/操作系统中存在的任何缓冲区,并采取预防措施,以免它们溢出。有许多流控制方法从XON/XOFF到实际的硬件流控制。在</p>