主题中讨论的其他器件: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