#ifndef __LORA_H__ #define __LORA_H__ #include "main.h" //LoRA引脚定义 #define LORA_AUX_Pin GPIO_PIN_7 #define LORA_AUX_Port GPIOC #define LORA_M0_Pin GPIO_PIN_0 #define LORA_M0_Port GPIOB #define LORA_M1_Pin GPIO_PIN_1 #define LORA_M1_Port GPIOB #define LORA_POW_Pin GPIO_PIN_8 #define LORA_POW_Port GPIOA /**USART3 GPIO Configuration PB10 ------> USART3_TX PB11 ------> USART3_RX */ #define SUB1_HADR 0x00 //表示 子设备1 地址高字节 #define SUB1_LADR 0x01 //表示 子设备1 地址低字节 #define SUB1_CH LoRa_CH21 //表示 子设备1 信道 #define SUB2_HADR 0x00 //表示 子设备2 地址高字节 #define SUB2_LADR 0x02 //表示 子设备2 地址低字节 #define SUB2_CH LoRa_CH22 //表示 子设备2 信道 #define SUB3_HADR 0x00 //表示 子设备3 地址高字节 #define SUB3_LADR 0x03 //表示 子设备3 地址低字节 #define SUB3_CH LoRa_CH23 //表示 子设备3 信道 #define SUB4_HADR 0x00 //表示 子设备4 地址高字节 #define SUB4_LADR 0x04 //表示 子设备4 地址低字节 #define SUB4_CH LoRa_CH24 //表示 子设备4 信道 #define SUB5_HADR 0x00 //表示 子设备5 地址高字节 #define SUB5_LADR 0x05 //表示 子设备5 地址低字节 #define SUB5_CH LoRa_CH25 //表示 子设备5 信道 #define SUB6_HADR 0x00 //表示 子设备6 地址高字节 #define SUB6_LADR 0x06 //表示 子设备6 地址低字节 #define SUB6_CH LoRa_CH26 //表示 子设备6 信道 #define SUB7_HADR 0x00 //表示 子设备7 地址高字节 #define SUB7_LADR 0x07 //表示 子设备7 地址低字节 #define SUB7_CH LoRa_CH27 //表示 子设备7 信道 #define SUB8_HADR 0x00 //表示 子设备8 地址高字节 #define SUB8_LADR 0x08 //表示 子设备8 地址低字节 #define SUB8_CH LoRa_CH28 //表示 子设备8 信道 #define SUB9_HADR 0x00 //表示 子设备9 地址高字节 #define SUB9_LADR 0x09 //表示 子设备9 地址低字节 #define SUB9_CH LoRa_CH29 //表示 子设备9 信道 #define SUB10_HADR 0x00 //表示 子设备 地址高字节 #define SUB10_LADR 0x0A //表示 子设备 地址低字节 #define SUB10_CH LoRa_CH30 //表示 子设备 信道 typedef struct { uint8_t LoRa_AddrH; //模块地址高字节 地址0x00 uint8_t LoRa_AddrL; //模块地址低字节 地址0x01 uint8_t LoRa_NetID; //模块网络地址 地址0x02 uint8_t LoRa_Baudrate; //模块串口波特率 地址0x03 uint8_t LoRa_UartMode; //模块串口工作模式 地址0x03 uint8_t LoRa_airvelocity; //模块空中速率 地址0x03 uint8_t LoRa_DataLen; //数据分包大小 地址0x04 uint8_t LoRa_Rssi; //环境噪声使能 地址0x04 uint8_t LoRa_TxPower; //模块发射功率 地址0x04 uint8_t LoRa_CH; //模块信道 地址0x05 uint8_t LoRa_RssiByte; //Rssi字节功能 地址0x06 uint8_t LoRa_DateMode; //模块数据传输模式 地址0x06 uint8_t LoRa_Relay; //模块中继功能 地址0x06 uint8_t LoRa_LBT; //模块LBT监听功能 地址0x06 uint8_t LoRa_WORmode; //模块WOR模式下工作方式 地址0x06 uint8_t LoRa_WORcycle; //模块WOR模式下周期时间 地址0x06 uint8_t LoRa_KeyH; //加密秘钥高字节 地址0x07 uint8_t LoRa_KeyL; //加密秘钥低字节 地址0x08 } LoRaParameter; //模式选择 #define LoRa_MODE0 HAL_GPIO_WritePin(LORA_M0_Port, LORA_M0_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(LORA_M1_Port, LORA_M1_Pin, GPIO_PIN_RESET) //LoRa模块 模式0 #define LoRa_MODE1 HAL_GPIO_WritePin(LORA_M0_Port, LORA_M0_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(LORA_M1_Port, LORA_M1_Pin, GPIO_PIN_RESET) //LoRa模块 模式1 #define LoRa_MODE2 HAL_GPIO_WritePin(LORA_M0_Port, LORA_M0_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(LORA_M1_Port, LORA_M1_Pin, GPIO_PIN_SET) //LoRa模块 模式2 #define LoRa_MODE3 HAL_GPIO_WritePin(LORA_M0_Port, LORA_M0_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(LORA_M1_Port, LORA_M1_Pin, GPIO_PIN_SET) //LoRa模块 模式3 #define LoRa_AUX HAL_GPIO_ReadPin(LORA_AUX_Port, LORA_AUX_Pin) //读取电平状态,判断模块状态 #define LoRa_PowerON HAL_GPIO_WritePin(LORA_POW_Port, LORA_POW_Pin, GPIO_PIN_SET) //控制供电,高电平ON #define LoRa_PowerOFF HAL_GPIO_WritePin(LORA_POW_Port, LORA_POW_Pin, GPIO_PIN_RESET) //控制供电,低电平OFF #define LoRa_TxData u2_TxData #define LoRa_1200 0x00 //模块串口 波特率 1200 #define LoRa_2400 0x20 //模块串口 波特率 2400 #define LoRa_4800 0x40 //模块串口 波特率 4800 #define LoRa_9600 0x60 //模块串口 波特率 9600 #define LoRa_19200 0x80 //模块串口 波特率 19200 #define LoRa_38400 0xA0 //模块串口 波特率 38400 #define LoRa_57600 0xC0 //模块串口 波特率 57600 #define LoRa_115200 0xE0 //模块串口 波特率 115200 #define LoRa_8N1 0x00 //模块串口参数 8数据位 无校验 1停止位 #define LoRa_8O1 0x08 //模块串口参数 8数据位 奇校验 1停止位 #define LoRa_8E1 0x10 //模块串口参数 8数据位 偶校验 1停止位 #define LoRa_0_3 0x00 //模块空中速率 0.3K #define LoRa_1_2 0x01 //模块空中速率 1.2K #define LoRa_2_4 0x02 //模块空中速率 2.4K #define LoRa_4_8 0x03 //模块空中速率 4.8K #define LoRa_9_6 0x04 //模块空中速率 9.6K #define LoRa_19_2 0x05 //模块空中速率 19.2K #define LoRa_38_4 0x06 //模块空中速率 38.4K #define LoRa_62_5 0x07 //模块空中速率 62.5K #define LoRa_Data240 0x00 //数据分包大小 240字节 #define LoRa_Data128 0x40 //数据分包大小 128字节 #define LoRa_Data64 0x80 //数据分包大小 64字节 #define LoRa_Data32 0xC0 //数据分包大小 32字节 #define LoRa_RssiEN 0x20 //启用RSSI功能 #define LoRa_RssiDIS 0x00 //禁用RSSI功能 #define LoRa_FEC_22DBM 0x00 //发射功率22dbm #define LoRa_FEC_17DBM 0x01 //发射功率17dbm #define LoRa_FEC_13DBM 0x02 //发射功率13dbm #define LoRa_FEC_10DBM 0x03 //发射功率10dbm #define LoRa_CH0 0x00 //模块信道 对应频率410MHz #define LoRa_CH1 0x01 //模块信道 对应频率411MHz #define LoRa_CH2 0x02 //模块信道 对应频率412MHz #define LoRa_CH3 0x03 //模块信道 对应频率413MHz #define LoRa_CH4 0x04 //模块信道 对应频率414MHz #define LoRa_CH5 0x05 //模块信道 对应频率415MHz #define LoRa_CH6 0x06 //模块信道 对应频率416MHz #define LoRa_CH7 0x07 //模块信道 对应频率417MHz #define LoRa_CH8 0x08 //模块信道 对应频率418MHz #define LoRa_CH9 0x09 //模块信道 对应频率419MHz #define LoRa_CH10 0x0A //模块信道 对应频率420MHz #define LoRa_CH11 0x0B //模块信道 对应频率421MHz #define LoRa_CH12 0x0C //模块信道 对应频率422MHz #define LoRa_CH13 0x0D //模块信道 对应频率423MHz #define LoRa_CH14 0x0E //模块信道 对应频率424MHz #define LoRa_CH15 0x0F //模块信道 对应频率425MHz #define LoRa_CH16 0x10 //模块信道 对应频率426MHz #define LoRa_CH17 0x11 //模块信道 对应频率427MHz #define LoRa_CH18 0x12 //模块信道 对应频率428MHz #define LoRa_CH19 0x13 //模块信道 对应频率429MHz #define LoRa_CH20 0x14 //模块信道 对应频率430MHz #define LoRa_CH21 0x15 //模块信道 对应频率431MHz #define LoRa_CH22 0x16 //模块信道 对应频率432MHz #define LoRa_CH23 0x17 //模块信道 对应频率433MHz #define LoRa_CH24 0x18 //模块信道 对应频率434MHz #define LoRa_CH25 0x19 //模块信道 对应频率435MHz #define LoRa_CH26 0x1A //模块信道 对应频率436MHz #define LoRa_CH27 0x1B //模块信道 对应频率437MHz #define LoRa_CH28 0x1C //模块信道 对应频率438MHz #define LoRa_CH29 0x1D //模块信道 对应频率439MHz #define LoRa_CH30 0x1E //模块信道 对应频率440MHz #define LoRa_CH31 0x1F //模块信道 对应频率441MHz #define LoRa_CH32 0x20 //模块信道 对应频率442MHz #define LoRa_CH33 0x21 //模块信道 对应频率442MHz #define LoRa_CH34 0x22 //模块信道 对应频率444MHz #define LoRa_CH35 0x23 //模块信道 对应频率445MHz #define LoRa_CH36 0x24 //模块信道 对应频率446MHz #define LoRa_CH37 0x25 //模块信道 对应频率447MHz #define LoRa_CH38 0x26 //模块信道 对应频率448MHz #define LoRa_CH39 0x27 //模块信道 对应频率449MHz #define LoRa_CH40 0x28 //模块信道 对应频率450MHz #define LoRa_CH41 0x29 //模块信道 对应频率451MHz #define LoRa_CH42 0x2A //模块信道 对应频率452MHz #define LoRa_CH43 0x2B //模块信道 对应频率453MHz #define LoRa_CH44 0x2C //模块信道 对应频率454MHz #define LoRa_CH45 0x2D //模块信道 对应频率455MHz #define LoRa_CH46 0x2E //模块信道 对应频率456MHz #define LoRa_CH47 0x2F //模块信道 对应频率457MHz #define LoRa_CH48 0x30 //模块信道 对应频率458MHz #define LoRa_CH49 0x31 //模块信道 对应频率459MHz #define LoRa_CH50 0x32 //模块信道 对应频率460MHz #define LoRa_CH51 0x33 //模块信道 对应频率461MHz #define LoRa_CH52 0x34 //模块信道 对应频率462MHz #define LoRa_CH53 0x35 //模块信道 对应频率463MHz #define LoRa_CH54 0x36 //模块信道 对应频率464MHz #define LoRa_CH55 0x37 //模块信道 对应频率465MHz #define LoRa_CH56 0x38 //模块信道 对应频率466MHz #define LoRa_CH57 0x39 //模块信道 对应频率467MHz #define LoRa_CH58 0x3A //模块信道 对应频率468MHz #define LoRa_CH59 0x3B //模块信道 对应频率469MHz #define LoRa_CH60 0x3C //模块信道 对应频率470MHz #define LoRa_CH61 0x3D //模块信道 对应频率471MHz #define LoRa_CH62 0x3E //模块信道 对应频率472MHz #define LoRa_CH63 0x3F //模块信道 对应频率473MHz #define LoRa_CH64 0x40 //模块信道 对应频率474MHz #define LoRa_CH65 0x41 //模块信道 对应频率475MHz #define LoRa_CH66 0x42 //模块信道 对应频率476MHz #define LoRa_CH67 0x43 //模块信道 对应频率477MHz #define LoRa_CH68 0x44 //模块信道 对应频率478MHz #define LoRa_CH69 0x45 //模块信道 对应频率479MHz #define LoRa_CH70 0x46 //模块信道 对应频率480MHz #define LoRa_CH71 0x47 //模块信道 对应频率481MHz #define LoRa_CH72 0x48 //模块信道 对应频率482MHz #define LoRa_CH73 0x49 //模块信道 对应频率483MHz #define LoRa_CH74 0x4A //模块信道 对应频率484MHz #define LoRa_CH75 0x4B //模块信道 对应频率485MHz #define LoRa_CH76 0x4C //模块信道 对应频率486MHz #define LoRa_CH77 0x4D //模块信道 对应频率487MHz #define LoRa_CH78 0x4E //模块信道 对应频率488MHz #define LoRa_CH79 0x4F //模块信道 对应频率489MHz #define LoRa_CH80 0x50 //模块信道 对应频率490MHz #define LoRa_CH81 0x51 //模块信道 对应频率491MHz #define LoRa_CH82 0x52 //模块信道 对应频率492MHz #define LoRa_CH83 0x53 //模块信道 对应频率493MHz #define LoRa_RssiByteEN 0x80 //启用RSSI字节功能 #define LoRa_RssiByteDIS 0x00 //禁用RSSI字节功能 #define LoRa_ModeTRANS 0x00 //模块透明传输 #define LoRa_ModePOINT 0x40 //模块定点传输 #define LoRa_RelayEN 0x20 //启用中继 #define LoRa_RelayDIS 0x00 //禁用中继 #define LoRa_LBTEN 0x10 //启用LBT #define LoRa_LBTDIS 0x00 //禁用LBT #define LoRa_WorTX 0x08 //Wor模式发送 #define LoRa_WorRX 0x00 //Wor模式接收 #define LoRa_Wor500ms 0x00 //Wor周期500毫秒 #define LoRa_Wor1000ms 0x01 //Wor周期1000毫秒 #define LoRa_Wor1500ms 0x02 //Wor周期1500毫秒 #define LoRa_Wor2000ms 0x03 //Wor周期2000毫秒 #define LoRa_Wor2500ms 0x04 //Wor周期2500毫秒 #define LoRa_Wor3000ms 0x05 //Wor周期3000毫秒 #define LoRa_Wor3500ms 0x06 //Wor周期3500毫秒 #define LoRa_Wor4000ms 0x07 //Wor周期4000毫秒 void loraGpioInit(void); //函数声明,初始化模块的IO uint8_t loraReset(int16_t); //函数声明,LoRa复位命令 void loraInit(void); //函数声明,初始化模块 void loraSet(void); //函数声明,LoRa设置工作参数 void loraGet(uint8_t *); //函数声明,LoRa查询工作参数 void u3PassiveEvent(uint8_t *, uint16_t); //函数声明,串口2被动事件 void subDeviceReportingCertificate(uint8_t,uint8_t *); void subDeviceReportingSwitchStatus(uint8_t,uint8_t *); #endif /*__LORA_H__*/