This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TM4C1294中ADC接口采样问题



通过配置好ADC接口后,用查询或中断方式进行采样,但是采样的值跟实际的值相差大概1.2倍左右。是初始化程序问题还是哪里需要做进一步设置?

初始化代码:

void ADC0Init(void)
{

ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0);

ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);

GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_2 | GPIO_PIN_3);

ADCReferenceSet(ADC0_BASE, ADC_REF_EXT_3V);

ADCSequenceConfigure(ADC0_BASE, 1, ADC_TRIGGER_PROCESSOR, 0);

ADCSequenceStepConfigure(ADC0_BASE, 1, 0, ADC_CTL_CH0);

ADCSequenceStepConfigure(ADC0_BASE, 1, 1, ADC_CTL_CH1 | ADC_CTL_IE | ADC_CTL_END);

ADCSequenceEnable(ADC0_BASE, 1);

// ADCIntEnable(ADC0_BASE,1);
//
// IntEnable(INT_ADC0SS1);

ADCIntClear(ADC0_BASE, 1);
}

查询采样代码:

uint32_t *GetSampleADc(void)
{
uint32_t pui32ADC0Value[2] = {0};
uint32_t *ADC0Value = &pui32ADC0Value[0];

ADCProcessorTrigger(ADC0_BASE, 1);

while(!ADCIntStatus(ADC0_BASE, 1, false))
{
}

ADCIntClear(ADC0_BASE, 1);

ADCSequenceDataGet(ADC0_BASE, 1, pui32ADC0Value);

SysCtlDelay(g_ui32SysClock / 12);

return ADC0Value;
}