77 lines
2.0 KiB
C++
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()
|
|
{
|
|
|
|
} |