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.

[参考译文] CCS/TM4C129XKCZAD:在 Tiva 微控制器 TM4C129X 中使用 ADC 时出现问题

Guru**** 2473260 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/683019/ccs-tm4c129xkczad-problem-using-adc-in-tiva-microcontroller-tm4c129x

器件型号:TM4C129XKCZAD

工具/软件:Code Composer Studio

我非常不熟悉 TI Tiva 微控制器系列。

我是演示板 DK-TM4C129x 、我正在尝试使用 TivaWare API 执行模数转换。

我遵循了软件包中的示例、但我的 ADC 模块只执行一次转换、然后停止扭曲、微处理器会一直等待下一次转换完成。

我在 fift允许 中附加了我的代码。

感谢大家

内部
main (空)

无符号长整型 ulADC0Value;
volatile unsigned long ulTempAvg;
volatile unsigned long ulTempValueC;
volatile unsigned long ulTempValueF;

SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz |SYSCTL_OSC_MAIN | SYSCTL_USE_PLL |SYSCTL_CFG_VCO_480)、120000000);
SysCtlPeripheralEnable (SYSCTL_Periph_ADC0);

ADCSequenceDisable (ADC0_BASE、3);
ADCSequenceConfigure (ADC0_BASE、3、ADC_TRIGGER_PROCESSOR、0);

ADCSequenceStepConfigure (ADC0_BASE、3、0、ADC_CTL_TS | ADC_CTL_IE | ADC_CTL_END);
ADCSequenceEnable (ADC0_BASE、3);
while (1)

ADCProcessorTrigger (ADC0_BASE、3);
while (!ADCIntStatus (ADC0_BASE、3、false)){}
ADCIntClear (ADC0_BASE、3);
ADCSequenceDataGet (ADC0_BASE、3、ulADC0Value);
ulTempAvg =(ulADC0Value + 2);


  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我看到了两件事。 最重要的是,ADCSequencyDataGet ()的第三个参数需要是指向32位整数的指针。 您传递的是无符号长整型的 ulADC0Value。
    第二点是,由于您以120MHz 的频率运行,我认为您需要调用 ADCClockConfigSet(),以确保 ADC 时钟不会超过20MHz。