From 015bafa2f40cfbf4ea884e26ebbbf398a5565b5a Mon Sep 17 00:00:00 2001 From: zhyinch <zhyinch@gmail.com> Date: 星期二, 15 九月 2020 21:49:57 +0800 Subject: [PATCH] 修改标签按键读取参数BUG --- Src/main.c | 41 +++++++++++++++++++++++++++++++++++++++-- 1 files changed, 39 insertions(+), 2 deletions(-) diff --git a/Src/main.c b/Src/main.c index 2ffbe79..5eb9090 100644 --- a/Src/main.c +++ b/Src/main.c @@ -28,6 +28,8 @@ #include "deca_device_api.h" #include "global_param.h" #include "TrackingDiff.h" +#include "dw_app.h" +//#define DEBUG_MODE /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ @@ -91,6 +93,17 @@ u16 count=HAL_LPTIM_ReadCounter(&hlptim1); return count*LPTIMER_LSB/1000; } +void UsartInit(void) +{ + waitusart_timer = tag_frequency*USART_KEEPWAKE_TIME; + MX_DMA_Init(); + MX_USART1_UART_Init(); + if(HAL_UART_Receive_DMA(&huart1,m_EUART_DMA_RXBuf,EUART_RX_BUF_SIZE)) + { + Error_Handler(); + } +} +uint8_t state5v; void IdleTask(void) {u16 current_time; @@ -109,6 +122,11 @@ // LED_TR_OFF; current_time=GetLPTime(); //motor_state=2; + if(g_com_map[MOTOR_ONTIME]>0) + { + g_com_map[MOTOR_ONTIME]--; + motor_state = 1; + } switch(motor_state) {case 0: MOTOR_OFF; @@ -131,6 +149,11 @@ } if(HAL_GPIO_ReadPin(INPUT_5V_GPIO_Port,INPUT_5V_Pin)) { + if(state5v==0) + { + state5v=1; + UsartInit(); + } if(bat_percent>99) { LED_LR_OFF; @@ -140,6 +163,7 @@ LED_LG_OFF; } }else{ + state5v=0; LED_LR_OFF; LED_LG_OFF; // } @@ -211,7 +235,7 @@ Usart1ParseDataCallback = UsartParseDataHandler; parameter_init(); //deca_sleep(1000); - g_com_map[VERSION] = 0x010d; + g_com_map[VERSION] = 0x010f; #ifdef DEBUG_MODE // g_com_map[DEV_ROLE]=1; // g_com_map[DEV_ID]=1; @@ -311,6 +335,7 @@ MX_SPI1_Init(); MX_ADC_Init(); /* USER CODE BEGIN 2 */ + LED_LG_ON; Program_Init(); LIS3DH_Data_Init(); Dw1000_Init(); @@ -369,8 +394,9 @@ } if(m_bEUARTTxEn==0&&waitusart_timer==0) { - +#ifndef DEBUG_MODE HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); +#endif } @@ -753,6 +779,7 @@ /*Enter the Standby mode*/ HAL_PWR_EnterSTANDBYMode(); } +extern uint8_t tx_near_msg[80],stationary_flag; extern float nomove_count; float key_keeptime; void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef *hlptim) @@ -773,6 +800,16 @@ }else{ key_keeptime=0; } + if(nomove_count>STATIONARY_TIME) + { + stationary_flag = 1; + }else{ + stationary_flag = 0; + } +if(nomove_count>=g_com_map[NOMOVESLEEP_TIME]-1&&imu_enable) + { + tx_near_msg[TAGSTATE] = tx_near_msg[TAGSTATE]|GOINGSLEEPBIT; + } if(nomove_count>g_com_map[NOMOVESLEEP_TIME]&&imu_enable) { mcu_sleep(); -- Gitblit v1.9.3