主题中讨论的其他器件:SEGGER
工具与软件:
我在 tm4c12433 MCU 上的 ADC 通道11一直存在问题。 即使未施加电压、我始终读出890的原始值(阶跃计数)。 理想情况下、它应将零读取为原始值。
以下是详细信息:
-** mc:** tm4c12433
-**晶体振荡器(Xtal):** 6 MHz
我已经确保将这些引脚作为 ADC 正确启用。 以下是我用于从 ADC 通道11读取的配置:
#define VBUS_MEAS_ADC_BASE GPIO_PORTB_BASE
#define VBUS_MEAS_ADC_PIN GPIO_PIN_5
GPIOPinTypeADC (VBUS_MEAS_ADC_BASE、VBUS_MEAS_ADC_PIN);
GPIOPinTypeGPIOInput (VBUS_MEAS_ADC_BASE、VBUS_MEAS_ADC_PIN);
uint32_t uiReadVbusVoltage (void)
{
uint32_t ADCValues[1];
ADCSequenceConfigure (ADC0_BASE、3、ADC_TRIGGER_processor、0);
ADCSequenceStepConfigure (ADC0_BASE、3、0、ADC_CTL_CH11 | ADC_CTL_IE | ADC_CTL_END);
ADCSequenceEnable (ADC0_BASE、3);
ADCIntClear (ADC0_BASE、3);
while (1)
{
//
///触发 ADC 转换
//
ADCProcessorTrigger (ADC0_BASE、3);
//
//等待转换完成。
//
while (! ADCIntStatus (ADC0_BASE、3、false)
{
}
//
//清除 ADC 中断标志。
//
ADCIntClear (ADC0_BASE、3);
//
//读取 ADC 值。
//
ADCSequenceDataGet (ADC0_BASE、3、ADCValues);
SEGGR_RTT_printf (0、"原始样本(ADCValues[0]):%04d\r"、ADCValues[0]);
//
//该函数提供了一种生成恒定长度的方法
//延迟。 函数延迟(以周期为单位)= 3 *参数。 延迟
//任意250ms。
//
SysCtlDelay (80000000 / 12);
}
}
输出打印如下:
原始样本(ADCValues[0]):0891
您能否帮助我确定可能导致此问题的原因?