Page 1 of 1

esp32收到data, csi data的时间节点以及回调函数开始工作的时刻

Posted: Thu Oct 20, 2022 3:56 am
by cqupt_jiang
我采用的开发板是ESP32系列ESP-WROVER-KIT,IDF版本是master4.4.1
目前我通过ESP_NOW实现了两块子板双向收发CSI,我的代码是一块子板间隔一定时间持续发送数据,另一块子板的接收回调函数wifi_csi_rx_cb里面的首行我添加了返回一个包的代码块(我起初认为这样就能在收到包的时刻立马回包),但后续发现可能并不如此。
我知道官网给出的收包回调函数有两个,一个是esp_wifi_set_csi_rx_cb(wifi_csi_cb_t cb, void *ctx),
另一个是esp_wifi_set_promiscuous_rx_cb(wifi_promiscuous_cb_t cb),前者给出的定义是在收到CSI DATA后调用函数,后者是收到DATA就调用。所以我想知道收到data和csi data的时间节点的先后情况(通常CSI data是由data处理得到的,但我并不清楚ESP32具体是怎么得到CSI的,我只知道按步骤使能CSI,设置CSI,编写回调函数,然后回调函数里面就能够直接从结构体中提取CSI),然后还有一个相关的问题就是在收到数据包的时候是不是立马就call了回调函数(收到真正数据包的时候先call了哪一个回调函数),如果这个过程有一个延时,有没有方法能让这个延时达到微妙级以下,或者说有没有一个标签值能让我知道什么时候收到了数据包,因为我想在收到包后立马执行某些操作,比如用尽量短的时间去回给发送端一个数据包。