From 4e29663c28e7204a18cece7a61a3a46735b9f6b8 Mon Sep 17 00:00:00 2001 From: yincheng.zhong <634916154@qq.com> Date: 星期三, 12 二月 2025 09:39:40 +0800 Subject: [PATCH] V2.24 去掉激活标志位=0bug --- Src/OnChipDevices/ADC.c | 87 +++++++++++++------------------------------ 1 files changed, 27 insertions(+), 60 deletions(-) diff --git a/Src/OnChipDevices/ADC.c b/Src/OnChipDevices/ADC.c index fbd823f..8f11431 100644 --- a/Src/OnChipDevices/ADC.c +++ b/Src/OnChipDevices/ADC.c @@ -2,68 +2,35 @@ #include "main.h" uint16_t Get_ADC_Value() { - HAL_ADC_Start(&hadc); - HAL_ADC_PollForConversion(&hadc, 10); - if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc), HAL_ADC_STATE_REG_EOC)) - { - return HAL_ADC_GetValue(&hadc); - } +HAL_ADC_Start(&hadc); + HAL_ADC_PollForConversion(&hadc, 10); + if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc), HAL_ADC_STATE_REG_EOC)) + { + return HAL_ADC_GetValue(&hadc); + } } float bat_volt; uint8_t Get_Battary(void) -{ static float last_value = 100; - static uint8_t first=1; - HAL_GPIO_WritePin(GPIOB, BAT_MEAS_GND_Pin, GPIO_PIN_RESET); - bat_volt = (float)Get_ADC_Value()/621; //(value/4096*3.3*2-3.5)/0.7 - HAL_GPIO_WritePin(GPIOB, BAT_MEAS_GND_Pin, GPIO_PIN_SET); - if(bat_volt>=3.5) - { - if(first) - { - first = 0; - bat_volt = (float)Get_ADC_Value()/621; - last_value =(bat_volt-3.5)*167;//(bat_volt-3.5)/0.6*100 - } - last_value = 0.9*last_value + (bat_volt-3.5)*16.7; - if(last_value>100) - last_value = 100; - if(last_value<0) - last_value = 0; - } else { - last_value=0; - } - return last_value; +{static float last_value = 100; +static uint8_t first=1; + HAL_GPIO_WritePin(GPIOB, BAT_MEAS_GND_Pin, GPIO_PIN_RESET); + bat_volt = (float)Get_ADC_Value()/621; //(value/4096*3.3*2-3.5)/0.7 + HAL_GPIO_WritePin(GPIOB, BAT_MEAS_GND_Pin, GPIO_PIN_SET); + if(bat_volt>=3.5) + { + if(first) + { + first = 0; + bat_volt = (float)Get_ADC_Value()/621; + last_value =(bat_volt-3.5)*167;//(bat_volt-3.5)/0.6*100 + } + last_value = 0.9*last_value + (bat_volt-3.5)*16.7; + if(last_value>100) + last_value = 100; + if(last_value<0) + last_value = 0; +}else{ + last_value=0; } - -uint16_t verfint_cal,adc_val; -uint8_t Get_VDDVlotage(void) -{ static float last_value = 100; - static uint8_t first=1; - static uint16_t bat_count = 0; - if(bat_count++%600==0) - { - MX_ADC1_Init(); - Delay_Us(30); - adc_val = Get_ADC_Value(); - MX_ADC_DeInit(); - //temp_voltage = (float)Get_ADC_Value()/621; //(value/4096*3.3*2-3.5)/0.7 - verfint_cal = *(__IO uint16_t *)(0X1FF80078); - bat_volt = 3*(float)verfint_cal/adc_val-0.329; - if(bat_volt>=3.0) - { - if(first) - { - first = 0; - last_value =(bat_volt-3.0)*167;//(bat_volt-3.5)/0.6*100 - } - last_value = 0.9*last_value + (bat_volt-3.0)*16.7; - if(last_value>100) - last_value = 100; - if(last_value<0) - last_value = 0; - } else { - last_value=0; - } - } - return last_value; + return last_value; } \ No newline at end of file -- Gitblit v1.9.3