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/TM4C123GH6PM:TM4C123 ADC 问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/576871/ccs-tm4c123gh6pm-tm4c123-adc-issue

器件型号:TM4C123GH6PM
主题中讨论的其他器件:TM4C123

工具/软件:Code Composer Studio

您好!

我有 TM4C123 Launchpad、我要将四个模拟传感器连接到该 LaunchPad。

问题是、我获得的3个传感器的值是正确的、但对于第四个传感器、我没有获得任何值。 它显示任何随机值。  

此外、如果我仅根据 TM4C129 Launchpad 更改时钟和端口引脚来使用相同的代码、我将获得所有四个传感器的值。  

代码如下所示:

#include
#include
#include "string.h"
#include "inc/hw_ints.h"
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/gpio.h"
#include "driverlib/adc.h"
#include "driverlib/interrupt.h"
#include "driverlib/pin_map.h"
#include "driverlib/sysctl.h"
#include "driverlib/uart.h"
#include "utils/ustdlib.h"

uint32_t ui32ADC0Value[4];

内部
main (空)

uint32_t ui32TempValue;
uint32_t ui32SmokeValue;
uint32_t ui32GasValue;
uint32_t ui32UVValue;
SysCtlClockSet (SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHz);

SysCtlPeripheralEnable (SYSCTL_Periph_GPIOE);

GPIOPinTypeADC (GPIO_Porte _BASE、GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_5);

SysCtlPeripheralEnable (SYSCTL_Periph_ADC0);

ADCSequenceConfigure (ADC0_BASE、0、ADC_TRIGGER_PROCESSOR、0);

ADCSequenceStepConfigure (ADC0_BASE、0、0、ADC_CTL_CH3);
ADCSequenceStepConfigure (ADC0_BASE、0、1、ADC_CTL_CH2);
ADCSequenceStepConfigure (ADC0_BASE、0、2、ADC_CTL_CH1);
ADCSequenceStepConfigure (ADC0_BASE、0、3、ADC_CTL_CH0 | ADC_CTL_IE | ADC_CTL_END);

ADCSequenceEnable (ADC0_BASE、0);

ADCIntClear (ADC0_BASE、0);

IntMasterEnable();

while (1)


ADCProcessorTrigger (ADC0_BASE、0);

while (!ADCIntStatus (ADC0_BASE、0、false))


ADCIntClear (ADC0_BASE、0);

ADCSequenceDataGet (ADC0_BASE、0、ui32ADC0Value);

ui32UVValue = ui32ADC0Value[0];
ui32SmokeValue = ui32ADC0Value[1];
ui32GasValue = ui32ADC0Value[2];
ui32TempValue = ui32ADC0Value[3];


 要使所有四个传感器都正确值、必须进行哪些更改?

此致

Praveen

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

    您好 Praveen、

     请注意、AIN5映射到端口 D、而不是门。 请参阅以下数据表摘录。

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

    您好、Charles、

    我还会将端口 D 添加到我的代码中并使用该引脚。  

    但是、即使我使用 Porte 引脚5、代码也必须正常工作、因为数据表中提到 PE5是 AIN8?

    此致

    Praveen  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Praveen、
    如果您想使用 AIN8、那么对 GPIOPinTypeADC (GPIO_Porte _BASE、GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_5)而言、您是正确的;
    。 很抱歉、我之前的回答不正确。
    我认为这是 ADCSequenceStepConfigure (ADC0_BASE、0、0、ADC_CTL_CH3)一行、您应该在这里更改为 ADC_CTL_CH8。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Charles、

    很抱歉耽误你的回答。 问题已经解决。

    谢谢你
    Praveen