|
采集电磁阀电流电路如下程序如下
ADC_InitTypeDef ADC_InitStructure;
// ADC_DeInit(ADC1); //将外设 ADC1 的全部寄存器重设为缺省值
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfChannel = 1;
ADC_Init(ADC1, &ADC_InitStructure);
RCC_ADCCLKConfig(RCC_PCLK2_Div6);//12MHZ
ADC_RegularChannelConfig(ADC1, ADC_Channel_11, 1, ADC_SampleTime_55Cycles5);
ADC_Cmd(ADC1, ENABLE);
ADC_ResetCalibration(ADC1);
while(ADC_GetResetCalibrationStatus(ADC1));
ADC_StartCalibration(ADC1);
while(ADC_GetCalibrationStatus(ADC1));
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
void filter(void)
{
u32 voltage_sample_sum=0;
//! external power,sample voltage
for(sample_ptr=0;sample_ptr<=15;sample_ptr++)
{ ADC_SoftwareStartConvCmd(ADC1, ENABLE);
while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束
voltage_sample_sum += ADC_GetConversionValue(ADC1);
//delay(2500); 去掉延时时采集电压跳动较大
}
voltage_sample_sum = voltage_sample_sum>>4;
RTbuf_UART0.dianya[0] = voltage_sample_sum>>8;
RTbuf_UART0.dianya[1] = voltage_sample_sum;
}
//delay(2500); 去掉延时时采集电压跳动较大加上延时采集正常 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|