完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我正在尝试为 ESP8266 构建串行命令行界面。这是我的一些代码:
代码:全选String ReadUntilEnter(String currentInput) { if (Serial.available() > 0) { char inputChar = Serial.read(); // On newline, stop reading chars and return the string if ((int) inputChar == 13) { Serial.print("rn"); return currentInput; } // If the character is not a newline, add it to the string and keep listening else { Serial.print(inputChar); currentInput += inputChar; return ReadUntilEnter(currentInput); } } // Wait for serial to become available else { delay(100); return ReadUntilEnter(currentInput); } } void loop() { Serial.print("Console# "); while (Serial.available() == 0) {} String command = ReadUntilEnter(""); // handle command } 本质上,我希望用户收到一条提示: Console# 然后用户可以输入命令: Console# hack cia 当用户在提示中键入一个或多个字符但尚未按下回车键时,就会出现我遇到的问题。该函数在等待下一个字符时暂停线程。看门狗不喜欢这样,如果有人输入命令的时间太长,它将重置 ESP。它在 100 毫秒的延迟下工作得很好,但如果你花很长时间,它会被看门狗停止。我曾尝试使用 yield() 函数来代替 100 毫秒的延迟,但是 ESP 一旦遇到 yield 语句就会崩溃——不是看门狗停止,而是带有堆栈跟踪和所有内容的完全崩溃。有人可以给我一些关于如何让它正常工作的建议吗?我已经在这个论坛和其他论坛上查看了大量关于看门狗的话题,但我不能完全正确。 非常感谢 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
944 浏览 0 评论
1671 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1330 浏览 1 评论
1233 浏览 1 评论
5015 浏览 2 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1252浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
927浏览 3评论
2336浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2526浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1051浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 02:27 , Processed in 0.506716 second(s), Total 68, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
373
