启动ADC转换后一直卡死在while(!

2023-09-10 15:04

启动ADC转换后一直卡死在while(!

问题:开始ADC转换后,仍然卡在while(!(ADC1->ISR&)); ADC寄存器ISR的EOC位仍然为零。 adc配置初始化如下:

旧版本闪电盒子_闪电盒子为什么老是正在初始化_旧版闪电盒子下载安装

//配置adc初始化
void ADC_Config(void)
{
	ADC_InitTypeDef     ADC_InitStructure;
	GPIO_InitTypeDef    GPIO_InitStructure;
	RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_5;				
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; 
	ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
	ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;
	//ADC_InitStructure.ADC_ExternalTrigConv =ADC_ExternalTrigConv_T1_TRGO;
	ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;//12位
	ADC_InitStructure.ADC_ScanDirection = ADC_ScanDirection_Upward;
	ADC_Init(ADC1, &ADC_InitStructure);
	
	ADC_GetCalibrationFactor(ADC1);	
	ADC_ChannelConfig(ADC1, ADC_Channel_0 , ADC_SampleTime_239_5Cycles);
	ADC_ChannelConfig(ADC1, ADC_Channel_5 , ADC_SampleTime_239_5Cycles);
	ADC_Cmd(ADC1, ENABLE);
    
}

初始化基本上是这样的。 进入仿真后查看ADC寄存器,发现CFGR1寄存器有问题。 为什么 EXTEN 位设置为 1? 在初始化期间它显然为零。 我关闭了外部触发器。 应该是零! ! 仔细看看闪电盒子为什么老是正在初始化,我没有初始化位。 我看网上其他人都没有初始化过。 我以为问题不在这里,没想到问题就在这里。 这里的值设置为。 我不知道为什么它没有初始化。 这样就比较有纪律闪电盒子为什么老是正在初始化,加上一句.=; 一切都会好起来的。 添加里面的代码注释语句就完全正常了。

正确初始化的寄存器应该如下所示:

旧版闪电盒子下载安装_旧版本闪电盒子_闪电盒子为什么老是正在初始化

开始转换后等待的EOC标记如下,问题解决! ! ! ! !

旧版本闪电盒子_旧版闪电盒子下载安装_闪电盒子为什么老是正在初始化

下一篇:世界前十名:“翔龙无人机”究竟有多牛?
上一篇:电脑上直接玩时空猎人3手游模拟器
相关文章
返回顶部小火箭