Explorar o código

Revert "每次循环重置E52的电源"

This reverts commit af666ee2
xuxinyi hai 1 mes
pai
achega
3a2a9b8480
Modificáronse 3 ficheiros con 10 adicións e 28 borrados
  1. 0 2
      Core/Inc/E52.h
  2. 2 8
      Core/Src/E52.c
  3. 8 18
      Core/Src/main.c

+ 0 - 2
Core/Inc/E52.h

@@ -208,8 +208,6 @@ void E52_CtlPowerOn_Fun();
 //关闭lora电源
 void E52_CtlPowerOff_Fun();
 
-GPIO_PinState E52_GET_PowerLevel_Fun(void);
-
 void schedule_Fun(void);
 
 void Enter_Sleep_ACK_Fun(void);

+ 2 - 8
Core/Src/E52.c

@@ -8,17 +8,11 @@ Device_structure deviceInfo;
 
 
 void E52_CtlPowerOn_Fun() {
-    HAL_GPIO_WritePin(CTL_LORA_POWER_GPIO_Port, CTL_LORA_POWER_Pin, GPIO_PIN_RESET);
+    HAL_GPIO_WritePin(POWER_ON_GPIO_Port, CTL_LORA_POWER_Pin, GPIO_PIN_RESET);
 }
 
 void E52_CtlPowerOff_Fun() {
-    HAL_GPIO_WritePin(CTL_LORA_POWER_GPIO_Port, CTL_LORA_POWER_Pin, GPIO_PIN_SET);
-}
-
-// 将函数返回类型从void改为GPIO_PinState
-GPIO_PinState E52_GET_PowerLevel_Fun(void) {
-    // 直接返回读取到的电平值
-    return HAL_GPIO_ReadPin(CTL_LORA_POWER_GPIO_Port, CTL_LORA_POWER_Pin);
+    HAL_GPIO_WritePin(POWER_ON_GPIO_Port, CTL_LORA_POWER_Pin, GPIO_PIN_SET);
 }
 
 

+ 8 - 18
Core/Src/main.c

@@ -321,9 +321,9 @@ int main(void)
     printf("开启Lora广播模块\r\n");
     E52_CONFIG_BROADCAST_TYPE_FUN(BROADCAST_ALL);
     HAL_Delay(2000);
-
-    E52_AT_TYPE_Fun(E52_TYPE_TERMINAL);
-
+    const char *lora_msg1 = "AT+TYPE=0";
+    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);
@@ -348,10 +348,7 @@ int main(void)
 
   /* Infinite loop */
   /* USER CODE BEGIN WHILE */
-  HAL_Delay(5000);
-  E52_AT_TYPE_Fun(E52_TYPE_TERMINAL);
-  E52_Heartbeat_Fun();
-  E52_AT_TYPE_Fun(E52_TYPE_REPEATER);
+
   printf("设备地址:0x%02X%02X\n", deviceInfo.loraDeviceAddress_H, deviceInfo.loraDeviceAddress_L);
 
 
@@ -365,15 +362,11 @@ int main(void)
     // 检查是否接收到"心跳"命令,且设备在线
     printf("设备状态:0x%02X\n", deviceInfo.commandFromCloud);
     printf("Device is ready: %d\r\n", deviceInfo.isOnline);
-    E52_CtlPowerOn_Fun();
-
     // schedule_Fun();
     // 心跳:不在线时,每 10 秒发一次
     if (!deviceInfo.isOnline) {
       if (IsTimeElapsed(&hrtc, &Online_struct, 10)) {
-        E52_AT_TYPE_Fun(E52_TYPE_TERMINAL);
         E52_Heartbeat_Fun();
-        E52_AT_TYPE_Fun(E52_TYPE_REPEATER);
       }
     }
 
@@ -398,7 +391,6 @@ int main(void)
     if (GET_CMD(deviceInfo.commandFromCloud) == REQUEST_BLUETOOTH_DATA && deviceInfo.isOnline )  {
       switch (GET_STEP(deviceInfo.commandFromCloud)) {
         case REQUEST_BLUETOOTH_DATA_SCAN:
-          E52_AT_TYPE_Fun(E52_TYPE_TERMINAL);
           deviceInfo.BlDataFlag = BL_STOP;
           deviceInfo.commandFromCloud = COMBINE_CMD_STEP(REQUEST_BLUETOOTH_DATA, REQUEST_BLUETOOTH_DATA_SEND);
           break;
@@ -424,7 +416,7 @@ int main(void)
           break;          //发送数据阶段
         case STEP_COMPLETE:
           deviceInfo.forwardBLAndLoraDataDuration = 0;
-          E52_AT_TYPE_Fun(E52_TYPE_REPEATER);
+          // i = 0;
           deviceInfo.commandFromCloud = COMBINE_CMD_STEP(IDLE, STEP_INIT);
           break;
 
@@ -442,7 +434,6 @@ int main(void)
     if (GET_CMD( deviceInfo.commandFromCloud)  == E52_HEARTBEAT && deviceInfo.isOnline) {
       switch (GET_STEP(deviceInfo.commandFromCloud)) {
         case HEARTBEAT_SEND:
-          E52_AT_TYPE_Fun(E52_TYPE_TERMINAL);
           if (TRUE) {
             E52_Heartbeat_Fun();
             deviceInfo.commandFromCloud = COMBINE_CMD_STEP(REQUEST_BLUETOOTH_DATA, STEP_COMPLETE);
@@ -450,7 +441,6 @@ int main(void)
           break;
         case STEP_COMPLETE:
           deviceInfo.commandFromCloud = COMBINE_CMD_STEP(IDLE, STEP_INIT);
-          E52_AT_TYPE_Fun(E52_TYPE_REPEATER);
           break;
 
         default:
@@ -464,7 +454,6 @@ int main(void)
     if (GET_CMD( deviceInfo.commandFromCloud)  == CONFIGURE_E52 && deviceInfo.isOnline) {
       switch (GET_STEP(deviceInfo.commandFromCloud)) {
           case CONFIGURE_E52_SET_BROADCAST_TYPE:      //第一步,配置广播类型
-          E52_AT_TYPE_Fun(E52_TYPE_TERMINAL);
               E52_CONFIG_BROADCAST_TYPE_FUN(deviceInfo.broadcast_type);
               HAL_Delay(2000);
               if (deviceInfo.broadcast_type == BROADCAST_ALL) {
@@ -481,9 +470,10 @@ int main(void)
           break;        //如果是单波,多播,配置目标地址
 
           case STEP_COMPLETE:
-              E52_AT_TYPE_Fun(E52_TYPE_REPEATER);
+            if (TRUE) {
               E52_Heartbeat_Fun();
-              deviceInfo.commandFromCloud = COMBINE_CMD_STEP(IDLE, STEP_INIT);
+            }
+            deviceInfo.commandFromCloud = COMBINE_CMD_STEP(IDLE, STEP_INIT);
           break;
 
           default: