STM32F103RB ADC 问题
大家好:我 设置了STM32F103RB ,QFP64, PC0,PC1,PC2,PC3 这三个引脚我设置为模拟输入引脚,采用规则采样,单次模式,(中断完成后,用软件再设置ADON)
读出来的数据,6FF.(相当于1.2v) 用万用表量测的电压都是0V) , 请大家帮我看看。
source code 如下:
static void ADCx_Mode_Config(void)
{
ADC_InitTypeDef ADC_InitStructure;
// ´ò¿ªADCʱÖÓ
macADC_APBxClock_FUN ( macADC_CLK, ENABLE );
// ADC ģʽÅäÖÃ
// ֻʹÓÃÒ»¸öADC£¬ÊôÓÚµ¥Ä£Ê½
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
// ½ûֹɨÃèģʽ£¬¶àͨµÀ²ÅÒª£¬µ¥Í¨µÀ²»ÐèÒª
//ADC_InitStructure.ADC_ScanConvMode = DISABLE ;
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
// Á¬Ðø×ª»»Ä£Ê½
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
//ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
// ²»ÓÃÍⲿ´¥·¢×ª»»£¬Èí¼þ¿ªÆô¼´¿É
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
// ת»»½á¹ûÓÒ¶ÔÆë
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
// ת»»Í¨µÀ4¸ö
ADC_InitStructure.ADC_NbrOfChannel = macNOFCHANEL;
// ³õʼ»¯ADC
ADC_Init(macADCx, &ADC_InitStructure);
// ÅäÖÃADCʱÖӣΪPCLK2µÄ8·ÖƵ£¬¼´9MHz
RCC_ADCCLKConfig(RCC_PCLK2_Div8);
// ÅäÖà ADC ͨµÀת»»Ë³ÐòΪ1£¬µÚÒ»¸öת»»£¬²ÉÑùʱ¼äΪ55.5¸öʱÖÓÖÜÆÚ
ADC_RegularChannelConfig(macADCx, macADC_CHANNEL10, 1, ADC_SampleTime_55Cycles5);
ADC_RegularChannelConfig(macADCx, macADC_CHANNEL11, 2, ADC_SampleTime_55Cycles5);
ADC_RegularChannelConfig(macADCx, macADC_CHANNEL12, 3, ADC_SampleTime_55Cycles5);
ADC_RegularChannelConfig(macADCx, macADC_CHANNEL13, 4, ADC_SampleTime_55Cycles5);
// ADC ת»»½áÊø²úÉúÖжϣ¬ÔÚÖжϷþÎñ³ÌÐòÖжÁȡת»»Öµ
ADC_ITConfig(macADCx, ADC_IT_EOC, ENABLE);
// ¿ªÆôADC £¬²¢¿ªÊ¼×ª»»
ADC_Cmd(macADCx, ENABLE);
// ³õʼ»¯ADC У׼¼Ä´æÆ÷
ADC_ResetCalibration(macADCx);
// µÈ´ýУ׼¼Ä´æÆ÷³õʼ»¯Íê³É
while(ADC_GetResetCalibrationStatus(macADCx));
// ADC¿ªÊ¼Ð£×¼
ADC_StartCalibration(macADCx);
// µÈ´ýУ׼Íê³É
while(ADC_GetCalibrationStatus(macADCx));
// ÓÉÓÚûÓвÉÓÃÍⲿ´¥·¢£¬ËùÒÔʹÓÃÈí¼þ´¥·¢ADCת»»
ADC_SoftwareStartConvCmd(macADCx, ENABLE);
}
看看 这个看看ST的实战经验,有一篇说的过这个问题 乱码看起来真不爽,还不如截图 看看这里
https://www.stmcu.org.cn/module/forum/thread-576401-1-1.html
页:
[1]