本帖最后由 wallace_tsou 于 2014-5-12 13:13 编辑  
 
    GPIO_StructInit(&GPIO_InitStructure); 
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN; 
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ; 
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4  | GPIO_Pin_5; 
    GPIO_Init(GPIOC, &GPIO_InitStructure); 
 
    ADC_StructInit(&ADC_InitStructure); 
    ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b; 
    ADC_InitStructure.ADC_ScanConvMode = ENABLE; 
    ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; 
    ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_Rising; 
//    ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None; 
    ADC_InitStructure.ADC_ExternalTrigConv     = ADC_ExternalTrigConv_T8_TRGO; 
    ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; 
    ADC_InitStructure.ADC_NbrOfConversion = 2; 
    ADC_Init(ADC2, &ADC_InitStructure); 
 
    ADC_DiscModeChannelCountConfig(ADC2,2); 
//    ADC_DiscModeChannelCountConfig(ADC2,1); 
    ADC_DiscModeCmd(ADC2, ENABLE); 
    ADC_RegularChannelConfig(ADC2, ADC_Channel_14, 1, ADC_SampleTime_144Cycles); 
    ADC_RegularChannelConfig(ADC2, ADC_Channel_15, 2, ADC_SampleTime_144Cycles); 
//    ADC_RegularChannelConfig(ADC2, ADC_Channel_14, 1, ADC_SampleTime_15Cycles); 
//    ADC_RegularChannelConfig(ADC2, ADC_Channel_15, 2, ADC_SampleTime_15Cycles); 
 
    ADC_DMARequestAfterLastTransferCmd(ADC2, ENABLE); 
    ADC_DMACmd(ADC2, ENABLE); 
    ADC_Cmd(ADC2, ENABLE); 
用這樣的程式 
使用在 
ADC_DiscModeChannelCountConfig(ADC2,1); 
設定下,一次觸發ADC出一個。 
使用在 
ADC_DiscModeChannelCountConfig(ADC2,2); 
設定下,一次觸發ADC出二個。 
但前面的程式沒有設定,就自己設定為ADC_DiscModeCmd(ADC2, ENABLE);的行為。 
 
 
 
 |