我目前只为 ADC 启用端口 E 引脚0、1、2、3。 我计划稍后使用 PE1至 PE3、但目前只读取 PE0。 我注意到其他三个引脚和所有未启用的 ADC 采样引脚都受 PE0上的读数影响。 例如、我将 PD0和 PD1设置为 GPIO 引脚、但当我在示波器上读取其输出时、它们是作为 ADC 引脚进行采样的。 我初始化的内容是否有问题? 我的评估板是全新的、我看不到它怎么会损坏。
下面是我 对 ADC 的初始化。
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOE); SysCtlPeripheralEnable (SYSCTL_Periph_ADC0); SysCtlPeripheralEnable (SYSCTL_Periph_TIMER0); GPIOPinTypeADC (GPIO_Porte _BASE、GPIO_PIN_3 | GPIO_PIN_2 | GPIO_PIN_1 | GPIO_PIN_0);//必须先启用 ADC TimerDisable (TIMER0_BASE、TIMER_A); TimerControlTrigger (TIMER0_BASE、TIMER_A、TRUE);//启用 ADC 的 TIMER0A 触发 TimerConfigure (TIMER0_BASE、TIMER_CFG_PERIODICASE); TimerLoadSet (TIMER0_BASE、TIMER_A、SysCtlClockGet ()/SAMPS_PER_SEC); TimerIntDisable (TIMER0_BASE、0xFFFFFFFF); //禁用此计时器的所有中断 TimerEnable (TIMER0_BASE、TIMER_A); ADCClockConfigSet (ADC0_BASE、ADC_CLOCK_RATE_REST_Eighth、1); ADCSequenceDisable (ADC0_BASE、ADC_SEQUENCE2); ADCSequenceConfigure (ADC0_BASE、ADC_SEQUENCE2、ADC_TRIGGER_TIMER、0); ADCSequenceStepConfigure (ADC0_BASE、ADC_SEQUENCE2、0、ADC_CTL_CH3); ADCSequenceStepConfigure (ADC0_BASE、ADC_SEQUENCE2、1、ADC_CTL_CH2); ADCSequenceStepConfigure (ADC0_BASE、ADC_SEQUENCE2、2、ADC_CTL_CH1); ADCSequenceStepConfigure (ADC0_BASE、ADC_SEQUENCE2、3、ADC_CTL_CH0 | ADC_CTL_END | ADC_CTL_IE);//ADC_base、序列号、步长、设置标志和在第一个之后结束 ADCSequenceEnable (ADC0_BASE、ADC_SEQUENCE2);//ADC_base、sequence ADCIntEnable (ADC0_BASE、ADC_SEQUENCE2); ADCIntRegister (ADC0_BASE、ADC_SEQUENCE2、&ADC0Seq2_Handler); IntPrioritySet (INT_ADC0SS2、ADC_SEQUENCE2_PRIORITY); IntEnable (INT_ADC0SS2); ADCIntClear (ADC0_BASE、ADC_SEQUENCE2);
//这里是我的 GPIO 初始化代码
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOF); SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD); SysCtlPeripheralEnable (SYSCTL_Periph_GPIOB); GPIOPINTypeGPIOOutput (GPIO_PORTD_BASE、GPIO_PIN_0); GPIOPinTypeGPIOOutput (GPIO_PORTD_BASE、GPIO_PIN_1); GPIOPinTypeGPIOOutput (GPIO_PORTF_BASE、GPIO_PIN_2); GPIOPinTypeGPIOOutput (GPIO_PORTB_BASE、 GPIO_PIN_2); configureTimer1A ();