This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好、
我检查了几个资源并查看了论坛、但找不到任何实质性的解决方案来解决我的问题。 我有2个传感器、它们位于 PE2和 PE1上。 我正在尝试使用 ADC 同时从这两个寄存器中读取数据。 但我为这两个值都获得相同的值。 不确定我下面的行为是什么。
提前感谢。
SysCtlPeripheralEnable (SYSCTL_Periph_ADC1); SysCtlPeripheralEnable (SYSCTL_Periph_GPIOE); GPIOPinTypeADC (GPIO_Porte _BASE、GPIO_PIN_2); GPIOPinTypeADC (GPIO_Porte _BASE、 GPIO_PIN_1); ADCSequenceConfigure (ADC1_BASE、0、ADC_TRIGGER_PROCESSOR、0); ADCSequenceConfigure (ADC1_base、1、ADC_TRIGGER_PROCESSOR, 1); ADCSequenceStepConfigure (ADC1_base、 0、0、ADC_CTL_CH2);//PE2->AIN1 ADCSequenceStepConfigure (ADC1_BASE、0、 1、ADC_CTL_CH2); ADCSequenceStepConfigure (ADC1_BASE、0、2、 ADC_CTL_CH2); ADCSequenceStepConfigure (ADC1_base、0、3、 ADC_CTL_CH2 | ADC_CTL_IE | ADC_CTL_END); ADCSequenceStepConfigure (ADC1_base、1、0、ADC_CTL_CH1); //PE1->AIN2 ADCSequenceStepConfigure (ADC1_BASE、1、1、ADC_CTL_CH1); ADCSequenceStepConfigure (ADC1_BASE、 1、2、ADC_CTL_CH1); ADCSequenceStepConfigure (ADC1_BASE、1、 3、 ADC_CTL_CH1 | ADC_CTL_IE | ADC_CTL_END); ADCSequenceEnable (ADC1_base、0); ADCSequenceEnable (ADC1_base、1); ADCIntClear (ADC1_BASE、0); ADCIntClear (ADC1_BASE、1); ADCProcessorTrigger (ADC1_BASE、 0); while (!ADCIntStatus (ADC1_base、0、false) { } ADCIntClear (ADC1_base、0); ADCSequenceDataGet (ADC1_base、0、reading1); ADCProcessorTrigger (ADC1_base、1); while (!ADCIntStatus (ADC1_base、1、false) { } ADCIntClear (ADC1_base、1); ADCSequenceDataGet (ADC1_base、1、reading2);
您好、Charles、
感谢您的回答。 我不需要采样4次。 因此、我可以使用 SS3。 我要做的是。 我有两个连接 AIN1和 AIN2的传感器。 传感器应提供单独的读数。 它们与彼此的读数无关。 我希望能够使用 相同的触发器读取它们的值。 那么、我可以这么做吗? 读取 AIN1并清除中断、然后再次触发中断并从 AIN2读取? 这是否会使读数(FIFO)混乱? 请参阅以下代码。 如果这不起作用。 您能否为您的#3建议粘贴示例代码?
GPIOPinTypeADC (GPIO_Porte _BASE、GPIO_PIN_2 | GPIO_PIN_1); ADCSequenceConfigure (ADC1_base、0、ADC_TRIGGER_PROCESSOR、0); ADCSequenceConfigure (ADC1_base、1、ADC_TRIGGER_PROCESSOR, 1); ADCSequenceStepConfigure (ADC1_base、 0、0、 ADC_CTL_CH1 | ADC_CTL_IE | ADC_CTL_END);//PE2->AIN1 ADCSequenceStepConfigure (ADC1_base、1、0、 ADC_CTL_CH2 | ADC_CTL_IE | ADC_CTL_END);//PE1->AIN2 ADCSequenceEnable (ADC1_BASE、0); ADCSequenceEnable (ADC1_BASE、1); ADCIntClear (ADC1_BASE、0); ADCIntClear (ADC1_BASE、1); ADCProcessorTrigger (ADC1_BASE、0);//针对 AIN1读数触发 while (!ADCIntStatus (ADC1_base、0、false)) { } ADCIntClear (ADC1_base、0);//清除标志 ADCSequenceDataGet (ADC1_base、0、reading1);//读取 AIN1 ADCProcessorTrigger (ADC1_base、1);//针对 AIN2读数的 RE 触发 while (!ADCIntStatus (ADC1_base、1、false)) { } ADCIntClear (ADC1_BASE、1);//清除标志 ADCSequenceDataGet (ADC1_base、1、reading2);
您好!
那么、使用上面的代码、我可以从(AIN1和 AIN2)引脚读取两个不同的传感器值吗? 这样、读数不会混合、因为我对这两个读数都使用 ADC1_base? 采样 序列0和1用于 AIN1和 AIN2?
谢谢。
非常感谢您的澄清、Charles。