你(们)好
我的客户使用 TM4C1230H6PM ADC 引脚 PE2 (CH1)、PE3 (CH0)、PE4 (CH9)、PE5 (CH8)、四个通道被采样10次、发现 PE3引脚 有问题、
测试1:如果 ADC PE3 (CH0) 接地,其它通道 ADC 日期如下,数据正确。
CH1:0x7283 CH0:0x0007 CH9:0x6DF0 CH8:0x2A29
CH1:0x7262 CH0:0x0017 CH9:0x6E01 CH8:0x2A08
CH1:0x726D CH0:0x0008 CH9:0x6DFB CH8:0x2A08
CH1:0x7263 CH0:0x0007 CH9:0x6E06 CH8:0x29ED
CH1:0x724B CH0:0x0006 CH9:0x6DF2 CH8:0x2A10
CH1:0x7260 CH0:0x0009 CH9:0x6DFE CH8:0x29F7
CH1:0x725A CH0:0x0003 CH9:0x6DF6 CH8:0x2A2E
CH1:0x7247 CH0:0x0004 CH9:0x6DFA CH8:0x2A22
CH1:0x7276 CH0:0x0007 CH9:0x6DF9 CH8:0x2A1E
CH1:0x7269 CH0:0x000A CH9:0x6DFB CH8:0x2A20
--------------------------------------
2.如果 PE3 (CH0)有电压,将影响其它 ADC 管脚的数据,其它 ADC 通道的数据不 正确, 其它通道的数据将增加
CH1:0xAFF5 CH0:0xAD7A CH9:0xADCC CH8:0xAB0
CH1:0xAFF5 CH0:0xAD86 CH9:0xADCF CH8:0xAB38
CH1:0xAFF5 CH0:0xAD5C CH9:0xADB8 CH8:0xAB14
CH1:0xAFF5 CH0:0xAD64 CH9:0xADB9 CH8:0xAB2B
CH1:0xAFF5 CH0:0xAD52 CH9:0xADB0 CH8:0xAB1E
CH1:0xAFF5 CH0:0xAD7C CH9:0xADCF CH8:0xAB16
CH1:0xAFF5 CH0:0xAD8A CH9:0xADCE CH8:0xAB1B
CH1:0xAFF5 CH0:0xAD6F CH9:0xADBD CH8:0xAB20
CH1:0xAFF5 CH0:0xAD8C CH9:0xADC9 CH8:0xAB31
CH1:0xAFF5 CH0:0xAD80 CH9:0xADCA CH8:0xAB24
--------------------------------------
我在 fift允许 中附加了我的客户代码。 你有什么建议吗?
感谢大家
///--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
静态空 SetADCFunction (空)
{
SysCtlPeripheralEnable (SYSCTL_Periph_ADC0);
GPIOPinTypeADC (GPIO_Porte _BASE、GPIO_PIN_2);
GPIOPinTypeADC (GPIO_Porte _BASE、GPIO_PIN_3);
GPIOPinTypeADC (GPIO_Porte _BASE、GPIO_PIN_4);
GPIOPinTypeADC (GPIO_Porte _BASE、GPIO_PIN_5);
ADCSequenceConfigure (ADC_base、0、ADC_TRIGGER_PROCESSOR、0);
ADCSequenceStepConfigure (ADC_base、0、0、ADC_CTL_CH1);//| ADC_CTL_IE | ADC_CTL_END);
ADCSequenceStepConfigure (ADC_base、0、1、ADC_CTL_CH0);//| ADC_CTL_IE | ADC_CTL_END);
ADCSequenceStepConfigure (ADC_base、0、2、ADC_CTL_CH9);//| ADC_CTL_IE | ADC_CTL_END);
ADCSequenceStepConfigure (ADC_base、0、3、ADC_CTL_CH8 | ADC_CTL_IE | ADC_CTL_END);
ADCSequenceEnable (ADC_base、0);
ADCIntClear (ADC0_BASE、0);
ADCProcessorTrigger (ADC0_BASE、0);
}
///--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
空测量(空)
{
静态字节 ADC_Cnt = 0;
静态字 Temp1 = 0;
静态字 Temp2 = 0;
静态字 Temp3 = 0;
静态字 Temp4 = 0;
if (ADCIntStatus (ADC0_BASE、0、false)// ADC 完成
{
TEMP1 += HWREG (ADC_base + ADC_O_SSFIFO0);
TEMP2 += HWREG (ADC_base + ADC_O_SSFIFO0);
Temp3 += HWREG (ADC_base + ADC_O_SSFIFO0);
Temp4 += HWREG (ADC_base + ADC_O_SSFIFO0);
if (adc_cnt < 10) adc_cnt++;
其他
{
ADC_Data1 = Temp1;
ADC_Data2 = Temp2;
ADC_Data3 = Temp3;
ADC_Data4 = Temp4;
ADC_Cnt = 0;
TEMP1 = 0;Temp2 = 0;
温度3 = 0;温度3 = 0;
}
ADCIntClear (ADC0_BASE、0);
ADCProcessorTrigger (ADC0_BASE、0);
}
}