如何在外部中断时,串口收到的数据包不丢失
2016-10-031.5万
AI 快速预览详细
本文讨论了在使用Arduino Uno和Processing进行串口通信时,如何防止外部中断导致的数据包丢失问题。通过在中断处理函数中保存当前状态并在中断恢复后继续读取数据,可以有效避免数据包丢失。具体来说,当外部中断触发时,保存当前状态并在中断恢复后继续读取串口缓冲区中的数据。这种方法提高了系统的稳定性和可靠性。
|
环境:uno,processing案例: 1.processing每1秒serial循环发送1个字节的字母[A~Z],模拟数据包 2. void loop() { while (Serial.available()) { Serial.readBytes(mBufferIn, Serial.available()); //模拟收到数据包,压入环形缓冲 //取出整包,解析,调用函数 //检查时间事件触发break } //处理事件 } 3.attachInterrupt触发中断 4.收到中断10秒后恢复,Serial缓冲内读取出的数据只有中断前和中断恢复后的数据包 举例: 1)中断前print B 2)中断... 3)中断恢复后print C,D,O,P,Q...(C和D应该是中断函数被触发前已经写入serial缓冲还没被read的数据,OPQ...是恢复后写入) 求助: 怎么才能在中断时,保留D和O中间缺失的数据 |



