#include #include #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() { }