大家好、当我尝试读取电路板上的传感器时、以下代码能够很好地读取操纵杆值和麦克风。 但它不适用于读取加速计。 即使加速计开启 x = PE0、y = PE1、z = PE2。 PE0映射到 CH3、PE1 = CH2、PE2 = CH1。
请参阅下面的代码、提前感谢。
#define JOYSTICKX 1
#define JOYSTICKY 2
#define MICROPHONE 3
#define ACCELX 4
#define ACCELY 5
#define ACCELZ 6
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
while(!SysCtlPeripheralReady(SYSCTL_PERIPH_GPIOE)) {}
SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0);
while(!SysCtlPeripheralReady(SYSCTL_PERIPH_ADC0)) {}
GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_4); //Joystick Y
GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_3); //Joystick X
GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_0); //Accelerometer X
ADCSequenceConfigure(ADC0_BASE, JOYSTICKX, ADC_TRIGGER_PROCESSOR, 0);
ADCSequenceStepConfigure(ADC0_BASE, JOYSTICKX, 0, ADC_CTL_IE | ADC_CTL_END | ADC_CTL_CH9); //Joystick X
ADCSequenceEnable(ADC0_BASE, JOYSTICKX);
ADCSequenceConfigure(ADC0_BASE, JOYSTICKY, ADC_TRIGGER_PROCESSOR, 0);
ADCSequenceStepConfigure(ADC0_BASE, JOYSTICKY, 0, ADC_CTL_IE | ADC_CTL_END | ADC_CTL_CH0); //Joystick Y
ADCSequenceEnable(ADC0_BASE, JOYSTICKY);
ADCSequenceConfigure(ADC0_BASE, ACCELX, ADC_TRIGGER_PROCESSOR, 0);
ADCSequenceStepConfigure(ADC0_BASE, ACCELX, 0, ADC_CTL_IE | ADC_CTL_END | ADC_CTL_CH3); //AccelX
ADCSequenceEnable(ADC0_BASE, ACCELX);
ADCProcessorTrigger(ADC0_BASE, JOYSTICKX);
while(!ADCIntStatus(ADC0_BASE, JOYSTICKX, false)){}
ADCSequenceDataGet(ADC0_BASE, JOYSTICKX, &x);
ADCProcessorTrigger(ADC0_BASE, JOYSTICKY);
while(!ADCIntStatus(ADC0_BASE, JOYSTICKY, false)){}
ADCSequenceDataGet(ADC0_BASE, JOYSTICKY, &y);
ADCProcessorTrigger(ADC0_BASE, ACCELZ);
while(!ADCIntStatus(ADC0_BASE, ACCELZ, false)){}
ADCSequenceDataGet(ADC0_BASE, ACCELZ, &accZ);

