完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在使用 ESP8266 Wemos D1 mini。我有 2 个 YS-IRTM 连接到 ESP8266,关于 YS-IRTM,您只需要知道它使用 UART 接口进行通信即可。因此,我将一个与“Serial”对象一起使用,另一个与 SoftwareSerial 创建的对象一起使用。它们都工作得很好,但是当它们同时接收到红外信号时,“YS-IRTM”都会同时使用 UART 向 ESP8266 发送消息。在那个时间点,它向我显示了来自“Serial”或“SoftwareSerial”的消息之一,但从来没有在时间差异很小的情况下显示,并且第二条消息出现在“SoftwareSerial”中的延迟接近 0.6到 1.5 秒,这是很多了。为了简单起见,这里有一个例子:同时发送了两条消息,一个用于 Serial,另一个用于 SoftwareSerial,Serial 首先得到它,然后使用“available()”函数检查 SoftwareSerial,但什么也没有,所以它必须等待将近 1.5 秒才能显示。这是代码:
代码:全选void loop() { while (Serial.available()) { X1Data[X1Ptr++] = Serial.read(); delay(2); enteredX1 = true; } delay(1500); // it gets delayed A LOT, I don\'t know why.. while (softwareSerial.available()) { X2Data[X2Ptr++] = softwareSerial.read(); delay(2); enteredX2 = true; } } 我可以使用两个 ESP8266,每个都只使用自己的串口。就这样,我解决了这个问题。但是,它的成本很高并且占用更多空间。所以,我想弄清楚如何以某种方式减少延迟。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
140 浏览 0 评论
1158 浏览 1 评论
584浏览 6评论
482浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
467浏览 5评论
466浏览 4评论
441浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 12:19 , Processed in 0.765697 second(s), Total 74, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号