#include "e22.h" #include "main.h" #include "inflash.h" uint8_t e22_state = 0; //c0 00 09 0000 00 64 00 0b 41 00 00 WOR定点发送 //c0 00 09 0000 00 64 00 0b 49 00 00 WOR定点收 /* 参数配置 */ uint8_t e22_config_data[12] = { 0xc0, 0x00, 0x09, //写,0起始,9长度 0x00, 0x30, //地址 0x00, //网络ID 0x64, //9600,8N1,9.6k 0x00, 0x0A, //信道10 0x49, 0x00, 0x00}; //加密 static unsigned short CRC16(unsigned char *arr_buff, unsigned char len) { unsigned short crc=0xFFFF; unsigned char i, j; for ( j=0; j0){ crc=crc>>1; crc=crc^ 0xa001; }else{ crc=crc>>1; } } } return crc; } void lora_set_mode_normal() { HAL_GPIO_WritePin(RF_M0_GPIO_Port, RF_M0_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(RF_M1_GPIO_Port, RF_M1_Pin, GPIO_PIN_RESET); } void lora_set_mode_wor() { HAL_GPIO_WritePin(RF_M0_GPIO_Port, RF_M0_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(RF_M1_GPIO_Port, RF_M1_Pin, GPIO_PIN_RESET); } void lora_set_mode_config() { HAL_GPIO_WritePin(RF_M0_GPIO_Port, RF_M0_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(RF_M1_GPIO_Port, RF_M1_Pin, GPIO_PIN_SET); } void lora_set_mode_sleep() { HAL_GPIO_WritePin(RF_M0_GPIO_Port, RF_M0_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(RF_M1_GPIO_Port, RF_M1_Pin, GPIO_PIN_SET); } void lora_set_mode(e22_mode mode) { switch(mode) { case NORMAL: lora_set_mode_normal(); HAL_Delay(200); break; case WOR: lora_set_mode_wor(); HAL_Delay(200); break; case CONFIG: lora_set_mode_config(); HAL_Delay(200); break; case SLEEP: lora_set_mode_sleep(); HAL_Delay(200); break; default: break; } } void e22_init() { uint8_t init_cmd[] = {0xC0, 0x00, 0x09, 0x00, 0x30, 0x00, 0x64, 0x00, 0x0A, 0x48, 0x00, 0x00 }; lora_set_mode(CONFIG); }