乐鑫技术交流
直播中

李燕

7年用户 1562经验值
私信 关注
[问答]

WIFI event回调,一直会打印如发送事件失败,为什么?

我们的一个项目需要处理WIFI事件的回调,我们注册了WIFI回调了,但是收不到事件,从LOG看,一直会打印如发送事件失败,LOG如下:
SDK version:1.3.0(68c9e7b)
mode : sta(5c:cf:7f:12:65:42) + softAP(5e:cf:7f:12:65:42)
add if0
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
add if1
bcn 100
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
add 1
aid 1
station: 68:3e:34:61:d5:61 join, AID = 1
send EVENT_SOFTAPMODE_STACONNECTED failed
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
send EVENT_SOFTAPMODE_PROBEREQRECVED error
        

           我们的代码如下:

extern void led_wifi_event_handle(System_Event_t *event);
void ICACHE_FLASH_ATTR
user_init(void)
{
        wifi_set_event_handler_cb(led_wifi_event_handle);
           // Change CPU FREQ to 160MHZ
        system_update_cpu_freq(SYS_CPU_160MHZ);
        // Add by Harry
        uart_init_new();
        
    os_printf("SDK version:%sn", system_get_sdk_version());
        // Wifi init
        led_wifi_init();
}

void IRAM_ATTR led_wifi_event_handle(System_Event_t *event)
{
        os_printf("led_wifi_event_handle evt = %dn",event->event_id);
}

使用的是wifi_set_opmode(STATIONAP_MODE);

   请问这是什么原因?

回帖(1)

h1654155275.5748

2024-7-22 16:15:50
从您提供的日志来看,似乎您的项目在处理WIFI事件回调时遇到了一些问题。以下是一些建议和可能的原因,以及如何解决这些问题:

1. **检查回调函数的实现**:
   确保您已经正确实现了回调函数,并且已经注册了这些回调函数。请检查您的代码,确保回调函数的签名与ESP-IDF中定义的回调函数签名相匹配。

2. **检查回调函数的注册**:
   确保您已经正确注册了回调函数。在ESP-IDF中,您需要调用`esp_event_loop_create_default()`函数来创建事件循环,并将回调函数注册到事件循环中。请检查您的代码,确保您已经正确调用了这些函数。

3. **检查ESP-IDF版本**:
   您提到的SDK版本是1.3.0,这个版本可能已经过时。建议您升级到最新版本的ESP-IDF,以确保您使用的是最新的功能和修复。您可以访问[ESP-IDF GitHub仓库](https://github.com/espressif/esp-idf)获取最新版本的代码。

4. **检查WIFI模式**:
   从日志中可以看到,您的设备处于STA(station,即客户端)模式和SoftAP(soft access point,即软AP)模式。请确保您的设备在正确的模式下运行,并且您的回调函数能够处理这两种模式的事件。

5. **检查事件类型**:
   日志中显示的事件类型是`EVENT_SOFTAPMODE_PROBEREQRECVED`,这意味着您的设备收到了一个Probe Request。请确保您的回调函数能够正确处理这种类型的事件。同时,您可能需要检查其他事件类型,以确保您的回调函数能够处理所有相关的WIFI事件。

6. **检查日志级别**:
   请确保您的日志级别设置正确。在ESP-IDF中,您可以使用`esp_log_level_set()`函数来设置日志级别。如果您的日志级别设置得太低,可能会导致一些重要的信息没有被打印出来。

7. **检查硬件和固件**:
   请确保您的硬件和固件都是最新的,并且没有损坏。您可以尝试重新刷写固件,或者检查硬件连接是否正常。

8. **调试和测试**:
   在开发过程中,调试和测试是非常重要的。您可以使用ESP-IDF提供的工具,如GDB,来调试您的代码。同时,您还可以使用ESP-IDF的单元测试框架来测试您的代码。

9. **参考文档和社区**:
   请参考ESP-IDF的官方文档,以获取更多关于WIFI事件回调的信息。同时,您还可以加入ESP-IDF的社区,与其他开发者交流经验和解决问题。

通过以上建议,希望您能够找到问题的原因,并解决WIFI事件回调的问题。如果您仍然遇到问题,建议您在ESP-IDF的GitHub仓库中提交一个issue,或者在相关社区中寻求帮助。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分