大家好、当我尝试读取电路板上的传感器时、以下代码能够很好地读取操纵杆值和麦克风。 但它不适用于读取加速计。 即使加速计开启 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);