|
|
@@ -262,15 +262,15 @@ int main(void)
|
|
|
powerOn();
|
|
|
E52_CtlPowerOn_Fun();
|
|
|
|
|
|
- deviceInfo.loraDeviceAddress_H = 0xFE;
|
|
|
- deviceInfo.loraDeviceAddress_L = 0xE1;
|
|
|
- Flash_Write_LoraAddr(deviceInfo.loraDeviceAddress_H, deviceInfo.loraDeviceAddress_L);
|
|
|
- uint8_t addrH, addrL;
|
|
|
- while (TRUE) {
|
|
|
- Flash_Read_LoraAddr(&addrH, &addrL);
|
|
|
- printf("LoraAddr: %02X%02X\r\n", addrH, addrL);
|
|
|
- HAL_Delay(1000);
|
|
|
- }
|
|
|
+ // deviceInfo.loraDeviceAddress_H = 0xFE;
|
|
|
+ // deviceInfo.loraDeviceAddress_L = 0xE1;
|
|
|
+ // Flash_Write_LoraAddr(deviceInfo.loraDeviceAddress_H, deviceInfo.loraDeviceAddress_L);
|
|
|
+ // uint8_t addrH, addrL;
|
|
|
+ // while (TRUE) {
|
|
|
+ // Flash_Read_LoraAddr(&addrH, &addrL);
|
|
|
+ // printf("LoraAddr: %02X%02X\r\n", addrH, addrL);
|
|
|
+ // HAL_Delay(1000);
|
|
|
+ // }
|
|
|
// 在需要设置RTC时间的地方直接调用
|
|
|
// 参数依次为:小时、分钟、秒、星期、月份、日期、年份(均为BCD格式)
|
|
|
RTC_SetDateTime(&hrtc,
|
|
|
@@ -287,36 +287,50 @@ int main(void)
|
|
|
__HAL_UART_ENABLE_IT(&huart3, UART_IT_IDLE);
|
|
|
HAL_UART_Receive_DMA(&huart2, rx_buf_uart2_DMA, sizeof(rx_buf_uart2_DMA));
|
|
|
__HAL_UART_ENABLE_IT(&huart2, UART_IT_IDLE);
|
|
|
- printf("开始初始化1\r\n");
|
|
|
- HAL_Delay(4000);
|
|
|
- printf("开始初始化\r\n");
|
|
|
- printf("切换为观察者模式\r\n");
|
|
|
- E104_BT5005A_ROLE_Fun();
|
|
|
- HAL_Delay(2000);
|
|
|
- printf("初始化扫描间隔\r\n");
|
|
|
- E104_BT5005A_SCANINTV_Fun();
|
|
|
- HAL_Delay(2000);
|
|
|
- printf("初始化扫描窗口\r\n");
|
|
|
- E104_BT5005A_SCANWND_Fun();
|
|
|
- HAL_Delay(2000);
|
|
|
-
|
|
|
-
|
|
|
- printf("初始化复位\r\n");
|
|
|
- E104_BT5005A_RESET_Fun();
|
|
|
- HAL_Delay(2000);
|
|
|
- Device_Info_Init_Fun();
|
|
|
- printf("开启Lora广播模块\r\n");
|
|
|
- E52_CONFIG_BROADCAST_TYPE_FUN(BROADCAST_ALL);
|
|
|
- HAL_Delay(2000);
|
|
|
- const char *lora_msg1 = "AT+TYPE=1";
|
|
|
- HAL_UART_Transmit(&huart2, (uint8_t *)lora_msg1, strlen(lora_msg1), HAL_MAX_DELAY);
|
|
|
- HAL_Delay(2000);
|
|
|
- const char *lora_msg3 = "AT+HEAD=0";
|
|
|
- HAL_UART_Transmit(&huart2, (uint8_t *)lora_msg3, strlen(lora_msg3), HAL_MAX_DELAY);
|
|
|
- HAL_Delay(2000);
|
|
|
- const char *lora_msg4 = "AT+SRC_ADDR=?";
|
|
|
- HAL_UART_Transmit(&huart2, (uint8_t *)lora_msg4, strlen(lora_msg4), HAL_MAX_DELAY);
|
|
|
- HAL_Delay(2000);
|
|
|
+ Flash_Read_LoraAddr(&deviceInfo.loraDeviceAddress_H, &deviceInfo.loraDeviceAddress_L);
|
|
|
+ printf("deviceInfo.loraDeviceAddress_H:%02X,deviceInfo.loraDeviceAddress_L:%02X\r\n", deviceInfo.loraDeviceAddress_H, deviceInfo.loraDeviceAddress_L);
|
|
|
+ if (deviceInfo.loraDeviceAddress_H == 0xFF || deviceInfo.loraDeviceAddress_L == 0xFF || deviceInfo.loraDeviceAddress_H == 0x00 || deviceInfo.loraDeviceAddress_L == 0x00) { // 未设置Lora地址,应该是初次启动,配置Lora地址蓝牙等
|
|
|
+ HAL_Delay(4000);
|
|
|
+ printf("开始初始化\r\n");
|
|
|
+ printf("切换为观察者模式\r\n");
|
|
|
+ E104_BT5005A_ROLE_Fun();
|
|
|
+ HAL_Delay(2000);
|
|
|
+ printf("初始化扫描间隔\r\n");
|
|
|
+ E104_BT5005A_SCANINTV_Fun();
|
|
|
+ HAL_Delay(2000);
|
|
|
+ printf("初始化扫描窗口\r\n");
|
|
|
+ E104_BT5005A_SCANWND_Fun();
|
|
|
+ HAL_Delay(2000);
|
|
|
+
|
|
|
+
|
|
|
+ printf("初始化复位\r\n");
|
|
|
+ E104_BT5005A_RESET_Fun();
|
|
|
+ HAL_Delay(2000);
|
|
|
+ Device_Info_Init_Fun();
|
|
|
+ printf("开启Lora广播模块\r\n");
|
|
|
+ E52_CONFIG_BROADCAST_TYPE_FUN(BROADCAST_ALL);
|
|
|
+ HAL_Delay(2000);
|
|
|
+ const char *lora_msg1 = "AT+TYPE=1";
|
|
|
+ HAL_UART_Transmit(&huart2, (uint8_t *)lora_msg1, strlen(lora_msg1), HAL_MAX_DELAY);
|
|
|
+ HAL_Delay(2000);
|
|
|
+ const char *lora_msg3 = "AT+HEAD=0";
|
|
|
+ HAL_UART_Transmit(&huart2, (uint8_t *)lora_msg3, strlen(lora_msg3), HAL_MAX_DELAY);
|
|
|
+ HAL_Delay(2000);
|
|
|
+ const char *lora_msg4 = "AT+SRC_ADDR=?";
|
|
|
+ HAL_UART_Transmit(&huart2, (uint8_t *)lora_msg4, strlen(lora_msg4), HAL_MAX_DELAY);
|
|
|
+ HAL_Delay(2000);
|
|
|
+
|
|
|
+ while (TRUE) {
|
|
|
+ if (deviceInfo.loraDeviceAddress_H == 0xFF && deviceInfo.loraDeviceAddress_L == 0xFF) {
|
|
|
+ HAL_UART_Transmit(&huart2, (uint8_t *)lora_msg4, strlen(lora_msg4), HAL_MAX_DELAY);
|
|
|
+ HAL_Delay(4000);
|
|
|
+ }else {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ printf("已配置\r\n");
|
|
|
+ }
|
|
|
|
|
|
srand(HAL_GetTick());
|
|
|
/* USER CODE END 2 */
|
|
|
@@ -339,7 +353,7 @@ int main(void)
|
|
|
GPIO_PinState powerState = HAL_GPIO_ReadPin(JUGE_PIN_GPIO_Port, JUGE_PIN_Pin);
|
|
|
|
|
|
if (powerState == GPIO_PIN_RESET) {
|
|
|
- powerOff();
|
|
|
+ // powerOff();
|
|
|
deviceInfo.commandFromCloud = COMBINE_CMD_STEP(IDLE, STEP_INIT);
|
|
|
printf("收到未知步骤,忽略处理\r\n");
|
|
|
HAL_Delay(10*60*1000);
|
|
|
@@ -399,7 +413,7 @@ int main(void)
|
|
|
uint8_t count = 0;
|
|
|
while(count < 10) {
|
|
|
if (HAL_GPIO_ReadPin(JUGE_PIN_GPIO_Port, JUGE_PIN_Pin) == GPIO_PIN_RESET) {
|
|
|
- powerOff();
|
|
|
+ // powerOff();
|
|
|
break;
|
|
|
}
|
|
|
count++;
|