99 lines
2.5 KiB
C
99 lines
2.5 KiB
C
|
#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<4F><52><EFBFBD>㷢<EFBFBD><E3B7A2>
|
|||
|
//c0 00 09 0000 00 64 00 0b 49 00 00 WOR<4F><52><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|||
|
uint8_t e22_config_data[12] = { 0xc0, 0x00, 0x09, //д<><D0B4>0<EFBFBD><30>ʼ<EFBFBD><CABC>9<EFBFBD><39><EFBFBD><EFBFBD>
|
|||
|
0x00, 0x30, //<2F><>ַ
|
|||
|
0x00, //<2F><><EFBFBD><EFBFBD>ID
|
|||
|
0x64, //9600<30><30>8N1<4E><31>9.6k
|
|||
|
0x00,
|
|||
|
0x0A, //<2F>ŵ<EFBFBD>10
|
|||
|
0x49,
|
|||
|
0x00, 0x00}; //<2F><><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
static unsigned short CRC16(unsigned char *arr_buff, unsigned char len)
|
|||
|
{
|
|||
|
unsigned short crc=0xFFFF;
|
|||
|
unsigned char i, j;
|
|||
|
for ( j=0; j<len; j++){
|
|||
|
crc=crc ^*arr_buff++;
|
|||
|
for ( i=0; i<8; i++){
|
|||
|
if( ( crc&0x0001) >0){
|
|||
|
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);
|
|||
|
}
|