请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TM4C123GH6PM 大家好、我也是。
我正在尝试读取 Tiva 上的 ADC 值。 VOM 中显示的值为3V、但 Tiva 上的 ADC 返回了3731、这意味着3731 *(3/4096)=2.7V
我也尝试过 ADC0和 ADC1、但它仍然显示错误的值。
下面是我的简单代码:
#include #include #include "inc/hw_memmap.h" #include "inc/hw_types.h" #include "driverlib/debug.h" #include "driverlib/sysctl.h" #include "driverlib/adc.h" #include "driverlib/syssctl.h" #include "driverlib/syscltl (volatile s32_ipt1) intrat_sys_ipt1 (volt_iptl);#include "sys_ipt1 inctl (us_ipt_ipt_ipt1) void (volatile r_ipt_ipt_ipt_ipt1) GPIO_PIN_0); ADCSequenceConfigure (ADC1_BASE、1、ADC_TRIGGER_PROCESSOR、0); ADCSequenceStepConfigure (ADC1_BASE、1、0、ADC_CTL_CH3); ADCSequenceStepConfigure (ADC1_BASE、 1、1、ADC_CTL_CH3); ADCSequenceStepConfigure (ADC1_BASE、1、 2、ADC_CTL_CH3); ADCSequenceStepConfigure (ADC1_BASE、1、3、 ADC_CTL_CH3|ADC_CTL_IE|ADC_CTL_END); ADCSequenceEnable (ADC1_BASE、1); //TimerLoadSet (TIMER0_BASE、TIMER_Both、1000); //TimerControlTrigger (TIMER0_BASE、TIMER_Both、TRUE); //TimerEnable (TIMER0_BASE、TIMER_Both); while (1) { ADCIntClear (ADC1_BASE、 1); ADCProcessorTrigger (ADC1_base、1); while (!ADCIntStatus (ADC1_base、1、 false) }{} ADCSequenceDataGet (ADC1_base、1、ui32ADC0Value); ui32Avg =(ui32ADC0Value[0]+ ui32ADC0Value[1]+ ui32ADC0Value[2]+ ui32ADC0Value[3])/4; }