#pragma once #ifdef __cplusplus extern "C" { #endif /* Includes ----------------------------------------------------------------- */ #include #include #include "device/sx1281_driver/sx1281.h" /* USER INCLUDE BEGIN */ /* USER INCLUDE END */ /* Exported constants ------------------------------------------------------- */ /* Exported macro ----------------------------------------------------------- */ /* USER DEFINE BEGIN */ /* USER DEFINE END */ /* Exported types ----------------------------------------------------------- */ typedef enum { MR16_MODE_NONE, MR16_MODE_RFUART, MR16_MODE_RC, MR16_MODE_SETTING }MR16_Mode_t; typedef struct { uint16_t ch_l_x; uint16_t ch_l_y; uint16_t ch_r_x; uint16_t ch_r_y; bool sw[16];//二值按键 bool threePosLever[8];//三值按键 uint16_t res1;//保留位1 uint16_t res2;//保留位2 uint16_t res3;//保留位3 }MR16_RCData_t; typedef struct { uint8_t header1; uint8_t header2; union { MR16_RCData_t rc; }data; uint16_t crc; }MR16_Data_t; typedef struct { uint8_t header1; uint8_t header2; uint16_t crc; }MR16_TXBuffer_t; typedef struct { SX1281_Params_t radioParams; MR16_Mode_t mode; uint16_t TX_ID; uint16_t RX_ID[3];//最多识别三台设备的信号 }MR16_Param_t; typedef struct { MR16_Param_t *param; MR16_Data_t *data; /* [0]header1(TXID_highbyte) [1]header2(TXID_lowbyte) [2]datalength(<=122) [...]data [2+datalength+1]crc_highbyte [2+datalength+2]crc_lowbyte */ uint8_t txbuffer[127]; uint32_t packetCount[3]; }MR16_t; /* Exported functions prototypes -------------------------------------------- */ int8_t MR16_Init(MR16_t *mr16,MR16_Param_t *param,MR16_Mode_t mr16Mode, SX1281_RadioMode_t radioMode); int8_t MR16_Main(MR16_t *mr16, uint8_t data[],uint8_t data_length); /* USER FUNCTION BEGIN */ /* USER FUNCTION END */ #ifdef __cplusplus } #endif