大家再用ADC时,会不会出现这样的问题,就是程序一直死在等待ADC采样结束这个位置(就是while这个地方), 导致不能获得ADC的值?
具体初始化如下:
void Adc_Configration(void)
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC); //使能ADC时钟
SysCtlADCSpeedSet(SYSCTL_ADCSPEED_125KSPS); // 设置 ADC 采样速率
//ADCSequenceDisable(ADC0_BASE, 0); // 配置前先禁止采样序列
ADCSequenceConfigure(ADC_BASE, 0, ADC_TRIGGER_PROCESSOR, 0);
ADCSequenceStepConfigure(ADC_BASE, 0, 0, ADC_CTL_TS | ADC_CTL_END | ADC_CTL_IE);
ADCSequenceEnable(ADC_BASE, 0); // 使能采样序列
ADCIntClear(ADC_BASE, 0);
ADCIntEnable(ADC_BASE, 0); // 使能 ADC 中断
IntEnable(INT_ADC0); // 使能 ADC 采样序列中断
IntMasterEnable(); // 使能处理器中断
}
unsigned long adcSample(void)
{
unsigned long ulValue;
ADCProcessorTrigger(ADC_BASE, 0); // 处理器触发采样序列
while(!ADCIntStatus(ADC_BASE, 0, false))
{
}
ADCSequenceDataGet(ADC_BASE, 0, &ulValue); // 读取 ADC 转换结果
}
此帖出自
小平头技术问答
一周热门 更多>