Files
wrobot/v1.1/Shibo-main-TOMMY/test/main 仅ESPNOW测试.cpp
T

77 lines
2.0 KiB
C++

#include <esp_now.h>
#include <WiFi.h>
#include "esp_wifi.h"
#include "main.h"
typedef struct {
// 4个摇杆轴(模拟值:0-4095)
int joyLeftX;
int joyLeftY;
int joyRightX;
int joyRightY;
// 12个按键(布尔值:1=按下,0=未按下)
bool btnJoyLeft;
bool btnJoyRight;
bool btnStart;
bool btnBack;
bool btnUp;
bool btnDown;
bool btnLeft;
bool btnRight;
bool btnA;
bool btnB;
bool btnX;
bool btnY;
} JoystickData;
JoystickData remoteData;
// ESP-NOW接收回调函数
void OnDataRecv(const uint8_t *mac, const uint8_t *incomingData, int len) {
memcpy(&remoteData, incomingData, sizeof(remoteData));
Serial.print("Received data:");
Serial.print(",joyLeftX: " + String(remoteData.joyLeftX));
Serial.print(",joyLeftY: " + String(remoteData.joyLeftY));
Serial.print(",joyRightX: " + String(remoteData.joyRightX));
Serial.print(",joyRightY: " + String(remoteData.joyRightY));
Serial.print(",btnJoyLeft: " + String(remoteData.btnJoyLeft));
Serial.print(",btnJoyRight: " + String(remoteData.btnJoyRight));
Serial.print(",btnStart: " + String(remoteData.btnStart));
Serial.print(",btnBack: " + String(remoteData.btnBack));
Serial.print(",btnUp: " + String(remoteData.btnUp));
Serial.print(",btnDown: " + String(remoteData.btnDown));
Serial.print(",btnLeft: " + String(remoteData.btnLeft));
Serial.print(",btnRight: " + String(remoteData.btnRight));
Serial.print(",btnA: " + String(remoteData.btnA));
Serial.print(",btnB: " + String(remoteData.btnB));
Serial.print(",btnX: " + String(remoteData.btnX));
Serial.println(",btnY: " + String(remoteData.btnY));
}
void setup()
{
Serial.begin(115200); // 通讯串口
// 设置WiFi模式
WiFi.mode(WIFI_STA); // 设置为STA模式
// 明确设置WiFi信道为6
esp_wifi_set_channel(6, WIFI_SECOND_CHAN_NONE);
// 初始化ESP-NOW
if (esp_now_init() != ESP_OK) {
Serial.println("ESP-NOW初始化失败");
return;
}
// 注册接收回调函数
esp_now_register_recv_cb(OnDataRecv);
}
void loop()
{
}