Merge branch 'feature/update_espnow_documentation' into 'master'
feat(docs): update connectionless module window syncronization documentation Closes WIFIBUG-1110 See merge request espressif/esp-idf!37918
This commit is contained in:
@@ -15,7 +15,7 @@ CTR 与 CBC-MAC 协议 (CCMP) 可用来保护动作帧的安全。ESP-NOW 广泛
|
||||
|
||||
ESP-NOW 使用供应商的动作帧传输数据,默认比特率为 1 Mbps。
|
||||
|
||||
目前 ESP-NOW 支持两个版本:v1.0 和 v2.0。v2.0 的设备支持的最大数据包长度为 1490 (``ESP_NOW_MAX_DATA_LEN_V2``) 字节;v1.0 的设备支持的最大数据包长度为 250 (``ESP_NOW_MAX_DATA_LEN``) 字节。
|
||||
目前 ESP-NOW 支持两个版本:v1.0 和 v2.0。v2.0 的设备支持的最大数据包长度为 1470 (``ESP_NOW_MAX_DATA_LEN_V2``) 字节;v1.0 的设备支持的最大数据包长度为 250 (``ESP_NOW_MAX_DATA_LEN``) 字节。
|
||||
|
||||
v2.0 设备可以接收来自 v2.0 和 v1.0 设备的数据包。v1.0 设备只能接收来自 v1.0 设备的数据包。
|
||||
|
||||
@@ -37,7 +37,7 @@ v2.0 设备可以接收来自 v2.0 和 v1.0 设备的数据包。v1.0 设备只
|
||||
- 分类代码:分类代码字段可用于指示各个供应商的类别(比如 127)。
|
||||
- 组织标识符:组织标识符包含一个唯一标识符(比如 0x18fe34),为乐鑫指定的 MAC 地址的前三个字节。
|
||||
- 随机值:防止重放攻击。
|
||||
- 供应商特定内容:供应商特定内容包含若干个(大于等于1)特定供应商元素字段,对于 v2.0 版本,x = 1532(1490+6*7);对于 v1.0 版本,x = 257(250+7)。
|
||||
- 供应商特定内容:供应商特定内容包含若干个(大于等于1)特定供应商元素字段,对于 v2.0 版本,x = 1512(1470+6*7);对于 v1.0 版本,x = 257(250+7)。
|
||||
|
||||
特定供应商元素的帧格式为:
|
||||
|
||||
@@ -109,7 +109,7 @@ ESP-NOW 数据可以从 Station 或 SoftAP 接口发送。确保在发送 ESP-NO
|
||||
|
||||
调用 :cpp:func:`esp_now_send()` 发送 ESP-NOW 数据,调用 :cpp:func:`esp_now_register_send_cb` 注册发送回调函数。如果 MAC 层成功接收到数据,则该函数将返回 `ESP_NOW_SEND_SUCCESS` 事件。否则,它将返回 `ESP_NOW_SEND_FAIL`。ESP-NOW 数据发送失败可能有几种原因,比如目标设备不存在、设备的信道不相同、动作帧在传输过程中丢失等。应用层并不一定可以总能接收到数据。如果需要,应用层可在接收 ESP-NOW 数据时发回一个应答 (ACK) 数据。如果接收 ACK 数据超时,则将重新传输 ESP-NOW 数据。可以为 ESP-NOW 数据设置序列号,从而删除重复的数据。
|
||||
|
||||
如果有大量 ESP-NOW 数据要发送,调用 ``esp_now_send()`` 时需注意单次发送的数据不能超过 250 字节。请注意,两个 ESP-NOW 数据包的发送间隔太短可能导致回调函数返回混乱。因此,建议在等到上一次回调函数返回 ACK 后再发送下一个 ESP-NOW 数据。发送回调函数从高优先级的 Wi-Fi 任务中运行。因此,不要在回调函数中执行冗长的操作。相反,将必要的数据发布到队列,并交给优先级较低的任务处理。
|
||||
如果有大量 ESP-NOW 数据要发送,调用 ``esp_now_send()`` 时需注意单次发送的数据不能超过最大数据包长(v1.0 是 250 bytes, v2.0 是 1470 字节)。请注意,两个 ESP-NOW 数据包的发送间隔太短可能导致回调函数返回混乱。因此,建议在等到上一次回调函数返回 ACK 后再发送下一个 ESP-NOW 数据。发送回调函数从高优先级的 Wi-Fi 任务中运行。因此,不要在回调函数中执行冗长的操作。相反,将必要的数据发布到队列,并交给优先级较低的任务处理。
|
||||
|
||||
接收 ESP-NOW 数据
|
||||
----------------------
|
||||
|
||||
Reference in New Issue
Block a user