完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我的项目除了 main.c 之外还有三个源代码。它们是 spiffs.c、event_loop.c 和 wifi_prov_mgr.c。Wifi_prov_mgr.c 是 ESP 的 wifi_provisioning 示例中主程序的副本(此示例有自己的 event_handler 来处理发布到默认事件循环的事件)。将 wifi_provisioning 示例复制到 wifi_prov_mgr.c 后,我对它所做的唯一更改是取消了默认偶数循环的创建并将其移动到另一个文件 - event_loop.c,该文件旨在管理其他源代码的执行每个不同的 .c 文件中某些自定义事件的发生。
在 main.c 中,我调用了 event_loop.c 和 spiffs.c 中的起始函数。这是我的 event_loop.c 代码的样子: 代码:全选 ESP_EVENT_DEFINE_BASE(CUSTOM_EVENT); static void event_loop_event_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data) {if (event_base == CUSTOM_EVENT){ switch (event_id) { case SPIFFSDONE: ESP_LOGI(TAG, "Done with spiffs."); wifi_provision(); break; case WIFIDONE: ESP_LOGI(TAG, "Done with wifi_prov."); break; } } } /* Initialize the event loop */ void event_loop_start(void){ ESP_ERROR_CHECK(esp_event_loop_create_default()); ESP_ERROR_CHECK(esp_event_handler_instance_register(CUSTOM_EVENT, ESP_EVENT_ANY_ID, event_handler1, NULL, NULL)); } spiffs.c 完成后,它会将 SPIFFS_DONE 事件发布到默认循环: 代码:全选 ESP_ERROR_CHECK(esp_event_post(CUSTOM_EVENT, SPIFFSDONE, NULL, 0, 0)); 和 event_loop.c 打印 完成 spiffs并从 wifi_prov_mgr.c 启动 wifi_provision()。 但是,当 wifi_provision.c 将 CUSTOM_EVENT/WIFIDONE 发布到默认循环时 代码:全选 esp_event_post(CUSTOM_EVENT, WIFIDONE, NULL, 0, 0); 什么都没发生。我本来希望 event_loop.c 打印 完成 wifi_prov 奇怪的是,如果我直接从 main.c 调用 wifi_prov_mgr.c 中的 wifi_provision(),它是 CUSTOM_EVENT (WIFIDONE) 事件被 event_loop.c 中的 event_loop_event_handler 函数识别并且函数打印 完成 wifi_prov 有人可以帮我弄清楚为什么当直接从 event_loop.c 而不是 main.c 调用 wifi_provision() 时 event_loop_event_handler() 无法识别 wifi_prov_mgr.c 发布的 CUSTOM_EVENT WIFIDONE 事件吗? |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1907个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36358 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4396 浏览 0 评论
6050 浏览 1 评论
6763 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4213 浏览 0 评论
619浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
614浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
606浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
694浏览 2评论
798浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 05:24 , Processed in 1.035255 second(s), Total 75, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号