133 lines
4.6 KiB
C
133 lines
4.6 KiB
C
|
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
// <20><>Ȩ: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD>Źɷ<C5B9><C9B7><EFBFBD><EFBFBD><EFBFBD>˾
|
|||
|
|
// <20>ļ<EFBFBD><C4BC><EFBFBD>:
|
|||
|
|
// <20>汾<EFBFBD><E6B1BE> v1.0
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: IAR v5.30
|
|||
|
|
// <20><><EFBFBD><EFBFBD>: ١<>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD>ں<EFBFBD><DABA><EFBFBD>
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 2013.12
|
|||
|
|
// <20><><EFBFBD><EFBFBD>: API
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>:
|
|||
|
|
// <20><EFBFBD><DEB8><EFBFBD>־<EFBFBD><D6BE>
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
#ifndef LSD_RF_SX1276_H
|
|||
|
|
#define LSD_RF_SX1276_H
|
|||
|
|
//===================================<3D><><EFBFBD><EFBFBD>===================================================
|
|||
|
|
|
|||
|
|
typedef enum
|
|||
|
|
{
|
|||
|
|
NORMAL, //<2F><><EFBFBD><EFBFBD>
|
|||
|
|
PARAMETER_INVALID, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
SPI_READCHECK_WRONG, //SPI<50><49><EFBFBD><EFBFBD>
|
|||
|
|
}tSX127xError; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><C3B6>
|
|||
|
|
|
|||
|
|
typedef enum
|
|||
|
|
{
|
|||
|
|
// LORA [0: 7.8 kHz, 1: 10.4 kHz, 2: 15.6 kHz, 3: 20.8 kHz, 4: 31.2 kHz,
|
|||
|
|
// 5: 41.6 kHz, 6: 62.5 kHz, 7: 125 kHz, 8: 250 kHz, 9: 500 kHz, other: Reserved]
|
|||
|
|
BW500KHZ = 0x90,
|
|||
|
|
BW250KHZ = 0x80,
|
|||
|
|
BW125KHZ = 0x70,
|
|||
|
|
BW62_50KHZ = 0x60,
|
|||
|
|
BW41_66KHZ = 0x50,
|
|||
|
|
BW31_25KHZ = 0x40,
|
|||
|
|
BW20_83KHZ = 0x30,
|
|||
|
|
BW15_62KHZ = 0x20,
|
|||
|
|
BW10_41KHZ = 0x10,
|
|||
|
|
BW7_81KHZ = 0x00,
|
|||
|
|
}t_BandWidth; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD><C3B6>
|
|||
|
|
typedef enum{
|
|||
|
|
// LORA [6: 64, 7: 128, 8: 256, 9: 512, 10: 1024, 11: 2048, 12: 4096 chips]
|
|||
|
|
SF12 = 0xC0,
|
|||
|
|
SF11 = 0xB0,
|
|||
|
|
SF10 = 0xA0,
|
|||
|
|
SF09 = 0x90,
|
|||
|
|
SF08 = 0x80,
|
|||
|
|
SF07 = 0x70,
|
|||
|
|
SF06 = 0x60,
|
|||
|
|
}t_SpreadingFactor;
|
|||
|
|
typedef enum{
|
|||
|
|
// LORA [1: 4/5, 2: 4/6, 3: 4/7, 4: 4/8]
|
|||
|
|
CR_4_8 = 0x08,
|
|||
|
|
CR_4_7 = 0x06,
|
|||
|
|
CR_4_6 = 0x04,
|
|||
|
|
CR_4_5 = 0x02,
|
|||
|
|
}t_CodingRate;
|
|||
|
|
typedef struct S_LoRaConfig
|
|||
|
|
{
|
|||
|
|
uint32_t LoRa_Freq;
|
|||
|
|
t_BandWidth BandWidth;
|
|||
|
|
t_SpreadingFactor SpreadingFactor;
|
|||
|
|
t_CodingRate CodingRate;
|
|||
|
|
int8_t PowerCfig; //0~15,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = 2+PowerReg,<2C><><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD>
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MaxPower<65><72>PowerReg = 15ʱ<35><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = 19<31><39>1dBm
|
|||
|
|
bool MaxPowerOn; // [false: OFF, true: ON]
|
|||
|
|
bool CRCON; // [false: OFF, true: ON]
|
|||
|
|
bool ExplicitHeaderOn; // [false: OFF, true: ON]
|
|||
|
|
uint8_t PayloadLength; //1~127
|
|||
|
|
}S_LoRaConfig;
|
|||
|
|
|
|||
|
|
extern S_LoRaConfig G_LoRaConfig;
|
|||
|
|
extern float G_BandWidthKHz;//<2F><><EFBFBD><EFBFBD>Symbol<6F><6C><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
|
|||
|
|
extern float G_TsXms;//Symbol<6F><6C><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD>λms
|
|||
|
|
|
|||
|
|
//===================================<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>===================================================
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : RF<52><46>ʼ<EFBFBD><CABC>
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> :
|
|||
|
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> : tSX127xError <20><><EFBFBD><EFBFBD>ö<EFBFBD><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// ˵<><CBB5> : <20><>ʼ<EFBFBD><CABC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>G_LoRaConfig
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
tSX127xError SX127x_init();
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : RF<52><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : uint8_t*data<74><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>룬uint8_t size<7A><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
|||
|
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> : <20><>
|
|||
|
|
// ˵<><CBB5> :
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
void SX1276_TxPacket(uint8_t*data);
|
|||
|
|
void SX1276_Process(void);
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : RF<52><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> :
|
|||
|
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> : <20><>
|
|||
|
|
// ˵<><CBB5> :
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
void Rx_mode(void);
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : RF<52><46><EFBFBD>տɱ<D5BF><C9B1><EFBFBD><EFBFBD>ݰ<EFBFBD>
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : uint8_t*cbuf<75><66><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> : <20><>
|
|||
|
|
// ˵<><CBB5> :
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
void LSD_RF_RxPacket(uint8_t*cbuf);
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : RF<52><46><EFBFBD><EFBFBD>SLEEP״̬
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : <20><>
|
|||
|
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> : <20><>
|
|||
|
|
// ˵<><CBB5> :
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
void LSD_RF_SleepMode(void);
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : RF<52><46><EFBFBD><EFBFBD>standby״̬
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : <20><>
|
|||
|
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> : <20><>
|
|||
|
|
// ˵<><CBB5> :
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
void LSD_RF_StandbyMode(void);
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : RF<52><46><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : <20><>
|
|||
|
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> : <20><>
|
|||
|
|
// ˵<><CBB5> :
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
tSX127xError LSD_RF_FreqSet();
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : RF<52><46><EFBFBD>ù<EFBFBD><C3B9><EFBFBD>
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : <20><>
|
|||
|
|
// <20><><EFBFBD>ز<EFBFBD><D8B2><EFBFBD> : <20><>
|
|||
|
|
// ˵<><CBB5> :
|
|||
|
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
tSX127xError LSD_RF_PoutSet();
|
|||
|
|
//*****************************************************************************************
|
|||
|
|
#endif
|