我用的板子是TM4C123GXL, CCS6.0的版本,换了几个差分输入都没用,得到的数据如图

void ADC_D_INIT()
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);
ADCHardwareOversampleConfigure(ADC0_BASE, 64);
GPIOPinTypeADC(GPIO_PORTD_BASE,GPIO_PIN_0|GPIO_PIN_1);
ADCReferenceSet(ADC0_BASE, ADC_REF_INT);
ADCSequenceDisable(ADC0_BASE, 0); // 配置前先禁止采样序列
ADCSequenceConfigure(ADC0_BASE, 0, ADC_TRIGGER_PROCESSOR, 0);
/*
ADCSequenceStepConfigure(ADC0_BASE, 0, 0, ADC_CTL_CH7);
ADCSequenceStepConfigure(ADC0_BASE, 0, 1, ADC_CTL_CH7);
ADCSequenceStepConfigure(ADC0_BASE, 0, 2, ADC_CTL_CH7);
ADCSequenceStepConfigure(ADC0_BASE, 0, 3, ADC_CTL_CH7);
ADCSequenceStepConfigure(ADC0_BASE, 0, 4, ADC_CTL_CH7);
ADCSequenceStepConfigure(ADC0_BASE, 0, 5, ADC_CTL_CH7);
ADCSequenceStepConfigure(ADC0_BASE, 0, 6, ADC_CTL_CH7);
ADCSequenceStepConfigure(ADC0_BASE,0,7,ADC_CTL_CH7|ADC_CTL_IE|ADC_CTL_END);*/
ADCSequenceStepConfigure(ADC0_BASE, 0, 0,ADC_CTL_D | ADC_CTL_CH3); //差分输入,差分通道3,6和7
ADCSequenceStepConfigure(ADC0_BASE, 0, 1,ADC_CTL_D | ADC_CTL_CH3);
ADCSequenceStepConfigure(ADC0_BASE, 0, 2,ADC_CTL_D | ADC_CTL_CH3);
ADCSequenceStepConfigure(ADC0_BASE, 0, 3,ADC_CTL_D | ADC_CTL_CH3);
ADCSequenceStepConfigure(ADC0_BASE, 0, 4,ADC_CTL_D | ADC_CTL_CH3);
ADCSequenceStepConfigure(ADC0_BASE, 0, 5,ADC_CTL_D | ADC_CTL_CH3);
ADCSequenceStepConfigure(ADC0_BASE, 0, 6,ADC_CTL_D | ADC_CTL_CH3);
ADCSequenceStepConfigure(ADC0_BASE,0,7,ADC_CTL_D|ADC_CTL_CH3|ADC_CTL_IE|ADC_CTL_END);
ADCSequenceEnable(ADC0_BASE, 0);
}
void main()
{
SysCtlClockSet(SYSCTL_SYSDIV_2_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);
ADC_D_INIT();
TIMER0_INIT(1000,true);
while(1)
{
}
}
void Timer0IntHandler()
{
TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
ADCIntClear(ADC0_BASE, 0);
ADCProcessorTrigger(ADC0_BASE, 0);
while(!ADCIntStatus(ADC0_BASE, 0, false))
{
}
ADCSequenceDataGet(ADC0_BASE, 0, DATA);
}