想用来同时采样2个通道数据,也设置好adc和dma,adc设置双通道连续采样,想要查询方式来获取采样好的ad数据,启动一次adc转换获取一次数据
但不清楚adc采样后数据传送到dma是通过什么标志位来判断传送成功的?
adc启动后,是先判断adc转换完成后再判断DMA传输完成后,才进行数据处理么?
下面采样函数是否正确?
void AD_Read(u16 *pad)
{
ADC_SoftwareStartConvCmd(ADC1,ENABLE);
DMA_Cmd(DMA1_Channel1,ENABLE);
while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC)==RESET);//等待adc转换完成
while(DMA_GetFlagStatus(DMA1_FLAG_TC1) == RESET);//等待DMA传输完成
DMA_ClearFlag(DMA1_FLAG_TC1);
resultdata= ADC_ConvertedValue[0] ;
ADC_SoftwareStartConvCmd(ADC1,DISABLE);
*pad = resultdata[0];//获取第一个通道ad
*(pad++) = resultdata[1];//获取第二个通道ad
}
|