1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我需要等待串行数据,然后将该数据解析为对请求的响应。文档说不要在回调中使用 delay() 。使用 while 循环读取串行是否等同于使用 delay() 或其他不同的方法进行阻塞?原则上,所有回调都会在有限的时间内阻塞。tiMEOUT 多长时间算太长?替代策略?我想我在问如何同步两个异步进程。Web 服务器在等待串行时无法响应另一个请求是可以的。它是一个自定义的 REST 接口,Android 应用程序一次只会发送一个命令,如果没有收到响应和超时,则在发送另一个命令之前等待响应和超时。或者,如果 rxBytes 为零,我可以返回 404 错误。 代码:全选unsigned long startTime = millis(); int rxBytes = 0; while((millis() - startTime) < TIMEOUT) { rxBytes = Serial.readBytesUntil('r', rxBuffer, RX_BUFF_SZ - 1); if (rxBytes != 0) break; } rxBuffer[rxBytes] = ' |