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.

[参考译文] EK-TM4C1294XL:ADC 无法正常工作

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1602289/ek-tm4c1294xl-adc-is-not-working

器件型号: EK-TM4C1294XL

您好团队:

我一直在尝试在 TIVA RM4C1294 上使用 ADC、但每次我尝试测量 AN0 时、都会在启用样本序列发生器 3 后设置 USTAT 位。 我使用了这个基本演示并从 system_dTM4C129.c 注释掉了 SystemInit;调试时、执行在“while ((ADC0->RIS & 8)== 0);“中进行了训练:

#include

内部 main (void)

 unsigned int ADC_value;
   
 /*启用 ADC0 和 GPIO 引脚的时钟*/
 SysCtl->RCGPIO |=(1<<4); /*启用 GPIOE 或 PE3/AN0 的时钟*/
 SysCtl->RCGCADC |=(1<<0);  /* AD0 时钟启用*/
   
 /*初始化 AIN0 输入的 PE3 */
 GPIOE_AHB->AFSEL |=(1<<3);   /*启用备用功能*/
 GPIOE_AHB->DEN &=~(1<<3);    /*禁用数字功能*/
 GPIOE_AHB->AMSEL |=(1<<3);   /*启用模拟功能*/
   
 /*初始化样本序列器 3 */
 ADC0->ACTSS &=~(1<<3);    /*在配置期间禁用 SS3 */
 ADC0->EMUX &=~0xF000;  /*软件触发转换*/
 ADC0->SSMUX3 = 0;     /*从通道 0 获取输入*/
 ADC0->SSCTL3 |=(1<<1)|(1<<2);    /*一次采集一个样本、在第一个样本处设置标志*/
 ADC0->ACTSS |=(1<<3);     /*启用 ADC0 序列发生器 3 */
   
 SysCtl->RCGCGPIO |= 0x20;//为 GPIOF 打开总线时钟
 GPIOF_AHB->DIR |= 0x08;//将绿色引脚设置为数字输出引脚
 GPIOF_AHB->DEN |= 0x08;//启用 PF3 引脚作为数字引脚

 while (1)
 {
  ADC0->PSSI |=(1<<3);    /*启用 SS3 转换或从 AN0 开始采样数据*/
  while ((ADC0->RIS & 8)==0); /*等待直到所有样本转换完成*/

  ADC_VALUE = ADC0->SSFIFO3;/*从 SS3 FIFO*/读取 ADC 协版本结果
  ADC0->ISC = 8;      /*清除协版本清除标志位*/

  /*CONTROL 绿色 PF3->LED */
  if (ADC_VALUE >= 2048)
   GPIOF_AHB->DATA = 0x08;/*接通绿色 LED*/
  否则 if (ADC_VALUE < 2048)
   GPIOF_AHB->DATA = 0x00;/*关闭绿色 LED*/
 }
}

void 系统初始化 (void)

 SCB->CPACR |= 0x00f00000;
}

 

此致、

Renan

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

    您好专家、

    是否有任何更新?

    此致、

    Renan

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

    尊敬的 Renan:

    配置 ADC 的步骤似乎是正确的。 我建议 参考一个使用更高级别 driverlib 函数的现有示例、以确保不会缺少任何配置步骤。

    谢谢、

    -Eric Rentschler

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

    您好、Eric、

    我尝试了 TI 提供的套装演示、但我运气不好。 与我最初在客户支持门户中发送的步骤的行为相同、直到我从演示中强制进行此调用:

    SysCtlClockFreqSet (SYSCTL_XTAL_25MHz |
                        SYSCTL_OSC_MAIN |
                        SysCtl_USE_PLL |
                        SYSCTL_CFG_VCO_240)、20000000);
    时钟看起来有问题、因为在确认演示是否正常工作后、我下载了第一个程序(我在开始时发送的步骤)、而无需对电路板进行任何额外更改、现在 ADC 可以正常工作。
    此致、
    Renan