void ADC_Configuration(void)
{
ADC_InitTypeDef ADC_InitStructure;
ADC_RCC_Configuration();
ADC_GPIO_Configuration();
ADC_DMA_Configuration();
ADC_NVIC_Configuration();
/* ADC1 configuration ------------------------------------------------------*/
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfChannel = 6;
ADC_Init(ADC1, &ADC_InitStructure);
ADC_RegularChannelConfig(ADC1, ADC_Channel_BEMF_A, 1, ADC_SampleTime_7Cycles5);
ADC_RegularChannelConfig(ADC1, ADC_Channel_BEMF_B, 2, ADC_SampleTime_7Cycles5);
ADC_RegularChannelConfig(ADC1, ADC_Channel_BEMF_C, 3, ADC_SampleTime_7Cycles5);
ADC_RegularChannelConfig(ADC1, ADC_Channel_BusVolt, 4, ADC_SampleTime_7Cycles5);
ADC_RegularChannelConfig(ADC1, ADC_Channel_ISense, 5, ADC_SampleTime_7Cycles5);
ADC_RegularChannelConfig(ADC1, ADC_Channel_SpeedSet, 6, ADC_SampleTime_7Cycles5);
ADC_DMACmd(ADC1, ENABLE);
/* Enable ADC1 external trigger */
ADC_ExternalTrigConvCmd(ADC1, DISABLE);
ADC_Cmd(ADC1, ENABLE);
ADC_ResetCalibration(ADC1);
while(ADC_GetResetCalibrationStatus(ADC1));
ADC_StartCalibration(ADC1);
while(ADC_GetCalibrationStatus(ADC1));
}
上面程序定义了按规则转换6通道的ADC数据,可是如何得到这六个数据呢?
我看到例程里面给出用 return ADC_GetConversionValue(ADC1); //返回最近一次ADC1规则组的转换结果
来得到结果,但是这样得到的结果是不是只是最后转化 ADC_RegularChannelConfig(ADC1, ADC_Channel_SpeedSet, 6, ADC_SampleTime_7Cycles5);的结果呢?
如果我想要得到上面全部6个数值应该怎么办呢?
谢谢~
|