主题中讨论的其他器件:TM4C123、 EK-TM4C123GXL
大家好、
我们希望在下面就我们客户的询问寻求您的帮助。
int main (空)
{
unsigned int array[4];
//将时钟设置为16MHz
SysCtlClockSet (SYSCTL_SYSDIV_10 | SYSCTL_USE_PLL | SYSCTL_OSC_INT | SYSCTL_XTAL_16MHz);
//启用 GPIOE 外设
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOE);
//启用 ADC0模块。
//
SysCtlPeripheralEnable (SYSCTL_Periph_ADC0);
//等待 GPIOE 模块准备就绪。
InitConsole();
while (!SysCtlPeripheralReady (SYSCTL_Periph_GPIOE))
{
}
//等待 ADC0模块准备就绪。
//
while (!SysCtlPeripheralReady (SYSCTL_Periph_ADC0))
{
}
//配置 ADC 引脚 PE3 (AIN0)和 PE2 (AIN1)
GPIOPinTypeADC (GPIO_Porte _BASE、GPIO_PIN_3 | GPIO_PIN_2);
//配置 ADC 功能
//使用具有4入口 FIFO 的序列1
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);
ADCIntClear (ADC0_BASE、1);
ADCClockConfigSet (ADC0_BASE、ADC_CLOCK_SRC_PIOSC | ADC_CLOCK_RATE_FULL、1);
while (1)
{
ADCProcessorTrigger (ADC0_BASE、1);
//等待转换完成
while (!ADCIntStatus (ADC0_BASE、1、false))
{
}
//清除中断标志
ADCIntClear (ADC0_BASE、1);
//读取 ADC 输入并将 PE3存储在数组[0]中,将 PE2存储在数组[1]中
ADCSequenceDataGet (ADC0_BASE、1、ARRAY);//读取模拟值
UARTprintf ("\rADC_CTL_CH0 ->%d、ADC_CTL_CH1 ->%d"、array[0]、array[1]);
SysCtlDelay (SysCtlClockGet ()/ 10 / 3);
SysCtlDelay (SysCtlClockGet ()/ 10 / 3);
SysCtlDelay (SysCtlClockGet ()/ 10 / 3);
SysCtlDelay (SysCtlClockGet ()/ 10 / 3);
SysCtlDelay (SysCtlClockGet ()/ 10 / 3);
}
}