From d7f957eb56272e006de3dd404454cdf56de86655 Mon Sep 17 00:00:00 2001 From: yincheng.zhong <634916154@qq.com> Date: 星期日, 25 二月 2024 18:42:52 +0800 Subject: [PATCH] 调通数据上报,测距,同步 --- Src/OnChipDevices/ADC.c | 102 +++++++++++++++++++++++++------------------------- 1 files changed, 51 insertions(+), 51 deletions(-) diff --git a/Src/OnChipDevices/ADC.c b/Src/OnChipDevices/ADC.c index 26ae854..fbd823f 100644 --- a/Src/OnChipDevices/ADC.c +++ b/Src/OnChipDevices/ADC.c @@ -2,68 +2,68 @@ #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{ +{ 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; + return last_value; } 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; + 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; + 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