| | |
| | | |
| | | ADC_DeInit(ADC1);//?? |
| | | |
| | | RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE); |
| | | ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;//ADC1?ADC2????,???? |
| | | ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;//ADC????,???????? |
| | | ADC_InitStructure.ADC_ScanConvMode = DISABLE; //ADC?????(ENABLE??????) |
| | |
| | | float bat_volt; |
| | | uint8_t Get_Battary(void) |
| | | {static float last_value = 100; |
| | | |
| | | static u8 first=1; |
| | | bat_volt = (float)Get_ADC_Value()/621; //(value/4096*3.3*2-3.5)/0.7 |
| | | if(bat_volt>=3.5) |
| | | { |
| | | if(first) |
| | | { |
| | | first = 0; |
| | | last_value =(bat_volt-3.5)*143; |
| | | } |
| | | last_value = 0.9*last_value + (bat_volt-3.5)*14.3; |
| | | if(last_value>100) |
| | | last_value = 100; |
| | | if(last_value<0) |
| | | last_value = 0; |
| | | } |
| | | return last_value; |
| | | } |