我用的是LM4F120H5QR控制板做实验,使用的是AN1,即PE1口,AD例程如下
int main(void)
{ unsigned long ulADC0_Value[1];
unsigned long addr;
SysCtlClockSet(SYSCTL_SYSDIV_10|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN|SYSCTL_XTAL_16MHZ);
SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
GPIOPinTypeADC(GPIO_PORTE_BASE,GPIO_PIN_2);
SysCtlADCSpeedSet(SYSCTL_ADCSPEED_1MSPS);
ADCSequenceConfigure(ADC0_BASE,3,ADC_TRIGGER_PROCESSOR,0);
ADCSequenceStepConfigure(ADC0_BASE,3,0,ADC_CTL_CH1|ADC_CTL_IE|ADC_CTL_END);
ADCSequenceEnable(ADC0_BASE,3);
ADCIntClear(ADC0_BASE,3);
while(1)
{
ADCProcessorTrigger(ADC0_BASE,3);
while(!ADCIntStatus(ADC0_BASE,3,false))
{
}
ADCSequenceDataGet(ADC0_BASE,3,ulADC0_Value);
addr=ulADC0_Value[0];
SysCtlDelay(SysCtlClockGet()/12);
}
}
但是程序总在 while(!ADCIntStatus(ADC0_BASE,3,false)) 过不去,不知道是什么原因呢?