260 lines
13 KiB
C
260 lines
13 KiB
C
#ifndef __LORA_H__
|
||
#define __LORA_H__
|
||
|
||
#include "main.h"
|
||
|
||
|
||
//LoRA引脚定义
|
||
#define LORA_AUX_Pin GPIO_PIN_8
|
||
#define LORA_AUX_Port GPIOA
|
||
|
||
#define LORA_M0_Pin GPIO_PIN_11
|
||
#define LORA_M0_Port GPIOA
|
||
|
||
#define LORA_M1_Pin GPIO_PIN_12
|
||
#define LORA_M1_Port GPIOA
|
||
|
||
#define LORA_POW_Pin GPIO_PIN_15
|
||
#define LORA_POW_Port GPIOB
|
||
|
||
|
||
#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__*/
|
||
|
||
|