WXK
2023-11-09 1a2da7d4f327ddb7fb40c85a87da8a1ca7098568
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include "ADC.h"
#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);
        }          
}
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;    
}
 
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;    
}