您好、
我尝试将 ADC0用作通用 ADC、但在从不同通道获取准确读数方面遇到了一些问题。 我正在使用 ADC 示例项目、并将其修改为(我认为是)通用模式。
adcStepCfg.adcNegativeInpRef = TSCADC_NEGATIVE_REF_VSSA; adcStepCfg.adcPositiveInpRef = TSCADC_POSITIVE_REF_VDDA; adcStepCfg.adcNegativeInpChan = TSCADC_INPUT_CHANNEL1; adcStepCfg.adcPositiveInpChan = TSCADC_INPUT_CHANNEL1; adcStepCfg.enableXppsw = FALSE;//TRUE adcStepCfg.enableXnpsw = FALSE; adcStepCfg.enableYppsw = FALSE; adcStepCfg.enableXnnsw = FALSE;//TRUE adcStepCfg.enableYpnsw = FALSE; adcStepCfg.enableYnnsw = FALSE; adcStepCfg.enableWpnsw = FALSE; /* Enable ADC for GP mode. */ TSCADCTSModeConfig(pCfgAdc->instAddr, TSCADC_MODE_GP_ADC);
上面的代码用于设置设置配置寄存器和设置模式。 我对前4个通道(AIN0-AIN3)执行此操作、但未获得预期结果。 如果我不对任何引脚施加电压、某些引脚会读回一个值。 但是、如果我向 J1接头(AIN0)的引脚31施加电压、我会注意到 AIN0和 AIN1的输出都发生变化。 如果我对引脚37和39施加电压、则为 AIN2和 AIN3读取的值没有变化、并且它们一直读取为0。
这是运行测试的输出
AN0 : 895mV -- AN1: 830mV -- AN2: 0mV -- AN3: 0mV AN0 : 881mV -- AN1: 811mV -- AN2: 0mV -- AN3: 0mV AN0 : 895mV -- AN1: 830mV -- AN2: 0mV -- AN3: 0mV AN0 : 881mV -- AN1: 816mV -- AN2: 0mV -- AN3: 0mV AN0 : 889mV -- AN1: 825mV -- AN2: 0mV -- AN3: 0mV
是否缺少 ADC 的一些设置、以使其输出更合适的值、例如0、而不施加电压、并在施加电压时增大?