esp32 esp-now 发送接收数据
时间: 2024-10-19 22:05:41 浏览: 53
ESP32是一款基于Espressif Systems的低功耗Wi-Fi SoC(系统级芯片),它内置了Wi-Fi和蓝牙功能。其中的ESP-NOW模块是一种无线通信技术,主要用于近距离、低功耗的数据传输,无需通过传统的Wi-Fi AP或蓝牙设备。
在ESP32上使用ESP-NOW发送和接收数据的基本步骤如下:
1. **初始化ESP-NOW**:首先需要在应用程序中启用ESP-NOW并配置网络参数,例如设置邻居发现模式(广播或组播)。
```cpp
esp_now_init();
esp_now_set_group_id(0); // 设置组ID,0表示所有节点
esp_now_register_recv_callback(recv_callback); // 注册接收数据回调函数
```
2. **发送数据**:创建包含要发送的数据的`esp_now_data_t`结构,并调用`esp_now_send()`发送到指定的节点地址。
```cpp
esp_now_data_t data;
data.src_addr = ESP_NOW_LOCAL_NODE; // 指定发送方节点地址
strcpy((char*)data.payload, "Hello"); // 数据内容
esp_now_send(&data);
```
3. **接收数据**:在注册的回调函数`recv_callback`中处理接收到的数据。
```cpp
void recv_callback(const uint8_t* src_addr, const uint8_t* payload, size_t len) {
printf("Received data from %s: ", src_addr);
for (size_t i = 0; i < len; ++i) {
printf("%c", payload[i]);
}
}
```
阅读全文