引用: yl20084784 发表于 2015-3-15 13:12
刚才,那个我没看仔细,你多半是,ADC2的RCC_APBXXXX这个函数里面没有对ADC2设置好
引用: qiwan 发表于 2015-3-15 14:06
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC2 , ENABLE );
您具体指的是这个函数吗?
ADC2是APB2总线上的外设,ADC2的时钟使能应该是没有问题的。
引用: yl20084784 发表于 2015-3-15 14:24
void ADC2_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
// Device header
ADC_InitTypeDef ADC_InitStructure;
//RCC_APB2PeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC2,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0; //PA0
GPIO_InitStructure .GPIO_Mode=GPIO_Mode_AIN;//éèÖÃÎaÄ£Äaêäèë
GPIO_Init(GPIOA,&GPIO_InitStructure);//PA02Îêy×°èëíê±Ï
RCC_ADCCLKConfig(RCC_PCLK2_Div6);//adcê±ÖóéèÖÃíê±Ï,ADC×î¸ß1¤×÷ÆμÂê14M£¬6·ÖÆμ¾íêÇ12M
ADC_DeInit(ADC2); //½«íaéè ADC2 μÄè«2¿¼Ä′æÆ÷ÖØéèÎaè±ê¡
ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;
ADC_InitStructure.ADC_ScanConvMode=DISABLE;//쥶à×a»»Ä£ê½
ADC_InitStructure.ADC_ContinuousConvMode=ENABLE;//PA0á¬Dø×a»»
ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;//óò¶ÔÆë
ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;//èí¼t′¥·¢
ADC_InitStructure.ADC_NbrOfChannel=1; //í¬ê±×a»»í¨μàêyÎa1£¬èç1ûóD¶à¸öí¨μà½øDD×a»»£¬Ôù¶¨
ADC_Init(ADC2,&ADC_InitStructure);//×°ÔØADC2Îêy
ADC_RegularChannelConfig(ADC2,ADC_Channel_0,1,ADC_SampleTime_41Cycles5);
//adc2éóÃê±¼ät=2éÑùÖüÆú+12.5¸öÖüÆú
ADC_Cmd(ADC2,ENABLE);
ADC_ResetCalibration(ADC2);
while(ADC_GetCalibrationStatus(ADC2));
ADC_StartCalibration(ADC2);//D£×¼
while(ADC_GetCalibrationStatus(ADC2));
ADC_SoftwareStartConvCmd(ADC2,ENABLE);//Öƶ¨èí¼t′¥·¢×a»»
}
参考下这个
引用: sting_yang 发表于 2015-3-17 08:51
请问一下,ADC1采集3.3V电压,DR的值是0xfff,是如何读取ADC_DR??
又ACD2的DR,是如何读取?
引用: sting_yang 发表于 2015-3-18 00:02
使用f103c8,adc同你的配置,输入为PA0,adc转换值由uart1输入到pc,结果:adc1跟adc2都正常
引用: sting_yang 发表于 2015-3-18 00:02
使用f103c8,adc同你的配置,输入为PA0,adc转换值由uart1输入到pc,结果:adc1跟adc2都正常
引用: sting_yang 发表于 2015-3-18 00:02
使用f103c8,adc同你的配置,输入为PA0,adc转换值由uart1输入到pc,结果:adc1跟adc2都正常
引用: sting_yang 发表于 2015-3-18 22:25
刚又试了一下,一样是F103C8,这次直接使用你的adc2,只是将mcu 主频改为4M,由USART1传送ADC2_DR给PC,输入一样改为PA0(ADC_Channel_0),其他都没变动,PC可以正确得到转换值
引用: qiwan 发表于 2015-3-19 16:55 恩 谢谢大家的帮忙 现在都好了 附件中的程序都是可行的
兄弟你可能永远也看不到了
我也遇到了同样的问题,ADC1采集PA5正常,换成AD C2就不行了,能请教一下是咋解决的吗?