完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我遇到了 ESP8266 性质的问题。我使用 Arduino IDE 库版本 3.0.2。
我的项目涉及ESP8266单元向ESP8266操作站发送数据。有时,第一个单元必须将数据从工作站下载到其闪存中。 问题是顺序写入操作只有在未连接 WiFi 时才会完成。 我已经隔离了代码,因此仅当我注释掉整个 Wifi 部分时,零填充缓冲区的简单 sequentail 写循环才能正确完成。 我听说过 Serial.Flush() 的必要性以及 yield() 并且我确认没有这些循环开始时会更糟。 那么谁能告诉我主动 WiFi 连接怎么可能干扰闪存写入操作。 我还确认阅读而不是写作完成没有错误。 我还注意到,写入恰好在写入第 7、15 或 31 个 1024 字节块之后中断。 在隔离代码下方。 代码:全选#include #include void setup() { Serial.begin(115200); LittleFS.format(); Serial.println("Formatted"); LittleFS.begin(); delay(1000); /* - if this commented - further code would complete fine WiFi.persistent(false); WiFi.mode(WIFI_STA); WiFi.begin("ssid", "passwd"); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(100); } Serial.println("Connected."); */ char fnam[] = "/server.bin"; uint8_t buf[1024] = {0}; Serial.flush(); File f = LittleFS.open(fnam, "w"); if (!f) Serial.println("error file not opened"); else { int len = 0; Serial.println("opened"); delay(10000); while (len < 200) { yield(); delay(50); Serial.flush(); delay(50); f.write(buf, 1024); delay(50); len++; Serial.print("#"); if (len % 32 == 0) Serial.printf(" %d kB\n", len); } f.flush(); Serial.printf(" %d kB Done.\n", len); } f.close(); LittleFS.end(); WiFi.disconnect(); Serial.flush(); Serial.end(); yield(); delay(7000); ESP.restart(); } void loop() { } |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
944 浏览 0 评论
1671 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1330 浏览 1 评论
1233 浏览 1 评论
5015 浏览 2 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1250浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
927浏览 3评论
2330浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2525浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1051浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 20:29 , Processed in 0.600589 second(s), Total 69, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
560
