我用的是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)) 过不去,不知道是什么原因呢?
Ken Wang:
你好,
你的程序里面 GPIOPinTypeADC(GPIO_PORTE_BASE,GPIO_PIN_2); 和你文字描述的“使用的是AN1,即PE1口”,存在出入,麻烦你再检查一下,确定是要用PE1还是PE2。
谢谢
Ken Wang
user3770609:
回复 Ken Wang:
使用的是AN1,即PE2口”,这个地方再次核对管脚后时PE2口,程序设置没错,