37 lines
675 B
C
37 lines
675 B
C
#include "adcs.h"
|
||
|
||
|
||
uint32_t adc_array[1000];
|
||
uint32_t adc_sum = 0;
|
||
uint32_t ADC_ConvertedValue = 0;//ADC数据
|
||
uint16_t adc_value=0; //ADC采样
|
||
float adc_vol=0.000f; //ADC采样后转换的电压
|
||
int adc_cnt = 0;
|
||
|
||
void adcs_init(void)
|
||
{
|
||
|
||
}
|
||
|
||
void adc_sample(void)
|
||
{
|
||
adc_value = HAL_ADC_GetValue(&hadc1); //读取ADC转换数据
|
||
adc_vol = ((double)adc_value/4096)*3300; //转换为电压
|
||
HAL_ADC_Start(&hadc1); //启动ADC单次转换
|
||
adc_array[adc_cnt] = adc_vol;
|
||
adc_sum += adc_array[adc_cnt];
|
||
adc_cnt++;
|
||
|
||
//平均值滤波,1000
|
||
if(adc_cnt > 999)
|
||
{
|
||
ADC_ConvertedValue = adc_sum / 1000;
|
||
adc_sum = 0;
|
||
adc_cnt = 0;
|
||
}
|
||
|
||
//ADC_ConvertedValue = adc_vol;
|
||
}
|
||
|
||
|