請問如何軟件觸發(fā)讀取PB0,PB1 的ADC,有沒有例程

? ? 自己改的單路改為兩路讀不對。

? ? ADC_Function_Init();

? ? while(1)

? ? {

? ? ? ? ADC_SoftwareStartConvCmd(ADC1, ENABLE);

? ? ? ? while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC));

? ? ? ? while( !ADC_GetFlagStatus( ADC1, ADC_FLAG_JEOC ) );

? ? ? ? adc_jval = ADC_GetInjectedConversionValue(ADC1, ADC_InjectedChannel_1);

? ? ? ? printf("PB0:%04d? ?", Get_ConversionVal(adc_jval));

? ? ? ? adc_jval = ADC_GetInjectedConversionValue(ADC1, ADC_InjectedChannel_2);

? ? ? ? printf("PB1:%04d? ?\r\n", Get_ConversionVal(adc_jval));

? ? ? ? ?Delay_Ms(500);

????}




void ADC_Function_Init(void)

{

? ? ADC_InitTypeDef? ADC_InitStructure = {0};

? ? GPIO_InitTypeDef GPIO_InitStructure = {0};


? ? RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

? ? RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);

? ? RCC_ADCCLKConfig(RCC_PCLK2_Div8);


//? ? GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;

//? ? GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;

//? ? GPIO_Init(GPIOA, &GPIO_InitStructure);


? ? GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;

? ? GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;

? ? GPIO_Init(GPIOB, &GPIO_InitStructure);


? ? GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;

? ? GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;

? ? GPIO_Init(GPIOB, &GPIO_InitStructure);



? ? ADC_DeInit(ADC1);

? ? ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;

? ? ADC_InitStructure.ADC_ScanConvMode = DISABLE;

? ? ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;

? ? ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;

? ? ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;

? ? ADC_InitStructure.ADC_NbrOfChannel = 1;

? ? ADC_Init(ADC1, &ADC_InitStructure);


? ? ADC_InjectedSequencerLengthConfig(ADC1, 2);

//? ? ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_239Cycles5);


? ? ADC_InjectedChannelConfig(ADC1, ADC_Channel_8, 1, ADC_SampleTime_71Cycles5);

? ? ADC_InjectedChannelConfig(ADC1, ADC_Channel_9, 2, ADC_SampleTime_239Cycles5);


? ? ADC_AutoInjectedConvCmd(ADC1, ENABLE);

? ? ADC_Cmd(ADC1, ENABLE);


? ? ADC_BufferCmd(ADC1, DISABLE); //disable buffer

? ? ADC_ResetCalibration(ADC1);

? ? while(ADC_GetResetCalibrationStatus(ADC1));

? ? ADC_StartCalibration(ADC1);

? ? while(ADC_GetCalibrationStatus(ADC1));

? ? Calibrattion_Val = Get_CalibrationValue(ADC1);


}



您好,附件例程可以參考一下

icon_rar.gifCH32V208 ADC_PB0_1.zip



如果要休眠,讓ADC不耗電,需要執(zhí)行這些指令對嗎?

ADC_DeInit(ADC1);

ADC_Cmd(ADC1, DISABLE);

DMA_Cmd(DMA1_Channel1, DISABLE);

ADC_DMACmd(ADC1, DISABLE);

ADC_SoftwareStartConvCmd(ADC1, DISABLE);



您好,一般進低功耗模式(如停止、待機)的時候時鐘都被關(guān)閉了,不需要再配置關(guān)閉這些外設(shè)



只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频