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.

[参考译文] TM4C1294NCPDT:ADC 端口 LM3S9B96至 TM4C1294NCPDT 问题

Guru**** 2602705 points
Other Parts Discussed in Thread: TM4C1294NCPDT

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/742101/tm4c1294ncpdt-adc-port-lm3s9b96-to-tm4c1294ncpdt-issue

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

您好!

我 将 TM4C1294NCPDT 与 IAR 搭配使用。

我将 LM3S9B96端口到 TM4C1294NCPDT,特别是 ADC。 看起来我的一切都正常、但我在微控制器之间进行了不同的转换。

我施加的唯一差异是 ADC 输入端(TM4C1294NCPDT)上的电阻、文档中显示 为 http://www.ti.com/lit/an/spma049a/spma049a.pdf

 关于

下面我放置了源代码和读取表、我知道  LM3S9B96在10位下工作、 TM4C1294NCPDT 在12位下工作、因此我进行了转换、只需将 TM4C1294NCPDT 结果除以4即可。

 请看一下、评论将会很好。

此致。

ADC

ADC

电压

TM4C1294NCPDT

LM3S9B96

3、3

1010.

69

3、2

959.

672.

3、1

948

662.

3.

902

648.

2.9.

8664

629

2.8.

847.

623

2.7.

822

612.

2、6

794

599

2.5.

750

586

2、4

716)

573)

2、3

686.

553.

2、2

661.

545

2、1

615

533.

2.

598

517

1.9.

569.

501

1、8

531

486.

1、7

509.

478

1、6

466

460

1.5

435

451.

1、4

408.

432

1、3

361.

426

1、2

345

413

1、1

300

400

1

275.

378.

0.9.

231.

370

0、8.

214.

357.

0、7

184.

348

0、6

146.

337.

//LM3S9B96

///------------------------------------------------

void main (void)

   SysCtlClockSet (SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |

                  SYSCTL_XTAL_8MHZ);

                                                

           SysCtlPeripheralEnable (SYSCTL_Periph_TIMER0);

           TimerConfigure (TIMER0_BASE、TIMER_CFG_32_bit_PER);

           TimerLoadSet (TIMER0_BASE、TIMER_A、SysCtlClockGet ()/4000); // 250µSec

           TimerEnable (TIMER0_BASE、TIMER_A);

           

           

   SysCtlPeripheralEnable (SYSCTL_Periph_GPIOD);

   GPIOPinTypeADC (GPIO_PORTD_base、AIN9 | AIN10 | AIN11 | AIN12 | AIN1 | AIN2 | AIN3 | AIN4);

 

 

   SysCtlPeripheralEnable (SYSCTL_Periph_GPIOE);

   GPIOPinTypeADC (GPIO_Porte _BASE、AIN8 | AIN7 | AIN6 | AIN5);

 

 

//将 ADC 配置为

//

    SysCtlPeripheralEnable (SYSCTL_Periph_ADC0);

    SysCtlPeripheralEnable (SYSCTL_Periph_ADC1);            // ADC1

   ADCSequenceDisable (ADC1_base、2);

   ADCSequenceDisable (ADC0_BASE、0);

   SysCtlADCSpeedSet (SYSCTL_ADCSPEED_500KSPS);

   ADCSequenceConfigure (ADC0_BASE、0、ADC_TRIGGER_processor、1);//序列发生器0优先级0

   ADCSequenceStepConfigure (ADC0_BASE、0、0、ADC_CTL_CH0);

   ADCSequenceStepConfigure (ADC0_BASE、0、1、ADC_CTL_CH1);

   ADCSequenceStepConfigure (ADC0_BASE、0、2、ADC_CTL_CH2);

   ADCSequenceStepConfigure (ADC0_BASE、0、3、ADC_CTL_CH3);

   ADCSequenceStepConfigure (ADC0_BASE、0、4、ADC_CTL_CH4);

   ADCSequenceStepConfigure (ADC0_BASE、0、5、ADC_CTL_CH5);

   ADCSequenceStepConfigure (ADC0_BASE、0、6、ADC_CTL_CH6);

   ADCSequenceStepConfigure (ADC0_BASE、0、7、ADC_CTL_CH7| ADC_CTL_IE | ADC_CTL_END);

 

//设置第二个 ADC

   ADCSequenceConfigure (ADC1_base、2、ADC_TRIGGER_PROCESSOR, 0);//序列发生器1优先级1

   ADCSequenceStepConfigure (ADC1_base、2、0、ADC_CTL_CH12);

   ADCSequenceStepConfigure (ADC1_BASE、2、1、ADC_CTL_CH13);

   ADCSequenceStepConfigure (ADC1_base、2、2、ADC_CTL_CH14);

   ADCSequenceStepConfigure (ADC1_base、2、3、ADC_CTL_CH15 | ADC_CTL_IE | ADC_CTL_END);

 

   ADCSequenceEnable (ADC0_BASE、0);//使能序列0

   ADCIntEnable (ADC0_BASE、0); //启用中断序列0

   IntEnable (INT_ADC0); //

    ADCSequenceEnable (ADC1_base、2);//使能序列1

   ADCIntEnable (ADC1_BASE、2); //启用中断序列1.

    IntEnable (INT_ADC1SS2);

           

           while (1);

}           

空 ADC0IntHandler (空)

    ADCIntClear (ADC0_BASE、0);

           unsigned long ulData[8];   //

 

   //从 ADC 读取数据。

   //

   ADCSequenceDataGet (ADC0_BASE、0、ulData);

   ADCC++;

 

空 ADC1IntHandler (空)

    ADCIntClear (ADC1_BASE、2);

 unsigned long ulData[8];   //

 

   //从 ADC 读取数据。

   //

   ADCSequenceDataGet (ADC1_base、2、ulData);

   ADCC1++;

 

空 Timer0IntHandler (空)

   //

   //清除计时器中断。

   //

   TimerIntClear (TIMER0_BASE、TIMER_TINA_TIMEOUT);

 

 

   ADCProcessorTrigger (ADC1_base、2);

    ADCProcessorTrigger (ADC0_BASE、0);

 

//TM4C1294NCPDT

///--------------------------------------------

void main (void)

   G_ui32SysClock = MAP_SysCtlClockFreqSet ((SYSCTL_XTAL_25MHz |

                                            SYSCTL_OSC_MAIN | SYSCTL_USE_PLL |

                                            SYSCTL_CFG_VCO_480)、120000000);

           SysCtlPeripheralEnable (SYSCTL_Periph_TIMER0);

           TimerConfigure (TIMER0_BASE、TIMER_CFG_32_bit_PER);

           TimerLoadSet (TIMER0_BASE、TIMER_A、SysCtlClockGet ()/4000); // 250µSec

           TimerEnable (TIMER0_BASE、TIMER_A);

 

   //

//配置用于模拟反馈输入的 GPIO 引脚 PORT_B。

   ROM_GPIOPinTypeADC (GPIO_PORTB_BASE、AIN10 | AIN11);

 

//配置用于模拟反馈输入的 GPIO 引脚 PORT_D。

   ROM_GPIOPinTypeADC (GPIO_PORTD_base、AIN12 | AIN7 | AIN6 | AIN5 | AIN4);

 

 

//配置用于模拟反馈输入的 GPIO 引脚 PORT_E。

   ROM_GPIOPinTypeADC (GPIO_Porte _BASE、AIN3 | AIN2 | AIN1 | AIN9 | AIN8);  

 

           ////////////////////////////

/将 ADC 配置为

//

    SysCtlPeripheralEnable (SYSCTL_Periph_ADC0);

    SysCtlPeripheralEnable (SYSCTL_Periph_ADC1);            // ADC1

   ADCSequenceDisable (ADC1_base、2);

   ADCSequenceDisable (ADC0_BASE、0);

   ADCClockConfigSet (ADC0_BASE、ADC_CClock_SRC_PLL | ADC_CClock_RATE_FULL、240);//120000000/500000 = 240

   ADCClockConfigSet (ADC1_base、ADC_CLOCK、SRC_PLL | ADC_CLOCK、RATE_FULL、240);

   //SysCtlADCSpeedSet (SYSCTL_ADCSPEED_500KSPS);//LM3S9B96

   ADCSequenceConfigure (ADC0_BASE、0、ADC_TRIGGER_processor、1);//序列发生器0优先级0

 

   ADCSequenceStepConfigure (ADC0_BASE、0、0、ADC_CTL_CH1);

   ADCSequenceStepConfigure (ADC0_BASE、0、1、ADC_CTL_CH2);

   ADCSequenceStepConfigure (ADC0_BASE、0、2、ADC_CTL_CH3);

   ADCSequenceStepConfigure (ADC0_BASE、0、3、ADC_CTL_CH4);

   ADCSequenceStepConfigure (ADC0_BASE、0、4、ADC_CTL_CH5);

   ADCSequenceStepConfigure (ADC0_BASE、0、5、ADC_CTL_CH6);

   ADCSequenceStepConfigure (ADC0_BASE、0、6、ADC_CTL_CH7);

   ADCSequenceStepConfigure (ADC0_BASE、0、7、ADC_CTL_CH8| ADC_CTL_IE | ADC_CTL_END);

   

//设置第二个 ADC

   ADCSequenceConfigure (ADC1_base、2、ADC_TRIGGER_PROCESSOR, 0);//序列发生器1优先级1

   ADCSequenceStepConfigure (ADC1_base、2、0、ADC_CTL_CH9);

   ADCSequenceStepConfigure (ADC1_base、2、1、ADC_CTL_CH10);

   ADCSequenceStepConfigure (ADC1_base、2、2、ADC_CTL_CH11);

   ADCSequenceStepConfigure (ADC1_base、2、3、ADC_CTL_CH12 | ADC_CTL_IE | ADC_CTL_END);

   

    IntMasterEnable();

   ADCSequenceEnable (ADC0_BASE、0);//使能序列0

   ADCIntEnable (ADC0_BASE、0); //启用中断序列0

   ///ROM_IntEnable (INT_ADC0SS0);

   IntEnable (INT_ADC0SS0);

   //IntEnable (INT_ADC0); //

    IntMasterEnable();

   ADCSequenceEnable (ADC1_base、2);//使能序列1

   ADCIntEnable (ADC1_BASE、2); //启用中断序列1.

   IntEnable (INT_ADC1SS2);

 

           while (1);

空 ADC0IntHandler (空)

    ADCIntClear (ADC0_BASE、0);

           uint32_t ulData[8];   //

 

   //从 ADC 读取数据。

   //

 

   ADCSequenceDataGet (ADC0_BASE、0、ulData);

  for (int i=8;i < 8;i++)//将12位转换为10位

           ulData[i]= ulData[i]/4;

 

   ADCC++;

 

空 ADC1IntHandler (空)

    ADCIntClear (ADC1_BASE、2);

           uint32_t ulData[8];   //

 

   //从 ADC 读取数据。

   //

   ADCSequenceDataGet (ADC1_base、2、ulData);

  for (int i=8;i < 8;i++)//将12位转换为10位

           ulData[i]= ulData[i]/4;

 

   ADCC1++;

 

空 Timer0IntHandler (空)

   //

   //清除计时器中断。

   //

   TimerIntClear (TIMER0_BASE、TIMER_TINA_TIMEOUT);

 

 

   ADCProcessorTrigger (ADC1_base、2);

    ADCProcessorTrigger (ADC0_BASE、0);

///------------------------------------------------

 

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我强烈建议您从 TivaWare ADC 和计时器示例开始、而不是将 LM 代码移植到 TM4C129。 开发应用程序将更加容易。 我快速浏览您的代码、发现了两个问题。 但我没有读取您的整个代码。 首先、请参阅用于 TimerConfigure 的 TivaWare 驱动程序库用户指南。 没有要使用的 TIMER_CFG_32_bit_PER。 这可能是 LM 器件、因为这是一种 EOL 产品、我对此没有任何经验。 其次、不能在 TM4C129器件上使用 SysCtlClockGet ()。 这仅适用于 TM4C123器件。 正如我说过的、如果您从 TivaWare ADC 和计时器示例开始、将会更加轻松。

    TimerConfigure (TIMER0_BASE、TIMER_CFG_32_bit_PER);

    TimerLoadSet (TIMER0_BASE、TIMER_A、SysCtlClockGet ()/4000);// 250µSec
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    蔡国荣

    关于计时器功能、您是对的、

    计时器的正确代码是(我只是在复制和粘贴代码时出错):

    ROM_SysCtlPeripheralEnable (SYSCTL_Periph_TIMER0);

    TimerConfigure (TIMER0_BASE、TIMER_CFG_PERIODICENT);As  

    TimerLoadSet (TIMER0_BASE、TIMER_A、g_ui32SysClock/4000); // 250µSec

    ROM_IntEnable (INT_TIMER0A);

    ROM_TimerIntEnable (TIMER0_BASE、TIMER_TINA_TIMEOUT);

    考虑到计时器是正确的,因为我可以看到,计时器不是问题。 它工作正常、我已经测试过它(个人)、我知道这是可以的。

    我想象中的主要问题是 ADC 基准、例如在 LM3S9B96中、我在标准模式下工作、我是说我没有为电压设置任何外部基准、正如我在手册中看到的、内部基准为3、3V 或3、0V。 但是、如果您看一下表、您可以看到、当我具有3、3伏时、转换不是1023或更低的值、假设转换上的3、3伏应为1023 (10位)、但当我具有3、3、3、3伏时、结果为694。 看起来基准电压是5伏、这正是表中的值让我相信的。 但我没有在代码的任何部分设置这个5伏基准。

    另一方面,当我查看 Tiva 微控制器时,我将3,3伏转换为 ADC,等于4096除以4表示1024,或在表1010上输入时(由于470欧姆电阻器)。

    我要再次强调的是读取之间的这种差异-我想、通常两个系统都可以正常工作、否则 LM3S9B96将使用不同的基准转换 ADC。

    我希望这一补充资料有助于理解这一问题。  

    此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我看到另一个问题。 您写道:
    ADCClockConfigSet (ADC0_BASE、ADC_CClock_SRC_PLL | ADC_CClock_RATE_FULL、240);//120000000/500000 = 240

    ADCClockConfigSet (ADC1_base、ADC_CLOCK、SRC_PLL | ADC_CLOCK、RATE_FULL、240);

    您的理解不正确。 首先、这里的 PLL 频率不是系统时钟频率120MHz。 PLL 频率是 PLL VCO 输出、为480MHz。 其次、TM4C129中的分频器只有6位、允许您进行1至64分频。 您不能除以240。

    如果您希望实现500KSPS、则 ADC 时钟需要为8MHz。 您将需要使用480/8=60的分频器。 但是、由于最近发现的问题、您需要将分频器配置为30以实现500KSPS。

    请尝试以下 ADC 时钟配置。

    ADCClockConfigSet (ADC0_BASE、ADC_CLOCK_SRC_PLL | ADC_CLOCK_RATE_FULL、30);

    这就是为什么我要求参考 TivaWare ADC 示例、而不是直接从 LM 器件移植。 它们之间有足够的差异、您最好从 TivaWare 示例开始。 您可能会在旅途中添加其他外设功能、这将节省您参考 TivaWare 示例的时间。

    下面是从 StellarisWare 到 TivaWare 的迁移文档。 www.ti.com/.../spma050a.pdf

    最后、请务必阅读 TM4C129数据表和 TivaWare 外设驱动程序库用户指南。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    查尔斯

    感谢你的帮助。

    正如您告诉我的、我已经为正确的更改了 ADC 时钟。
    ADCClockConfigSet (ADC0_BASE、ADC_CClock_SRC_PLL | ADC_CClock_RATE_FULL、30);//保持与 LM 中相同的采样率

    但这种变化不会反映在读数刻度上,我的意思是 LM 中我有3,3伏,ADC = 694,在 Tiva 中,除以4后结果,当我输入3,3伏时,我有1010 ~ 1023。

    正如我所看到的、StellarisWare 和 TivaWare 之间的 LM 函数非常相似、除了这个 ADC 时钟之外、您已经解释过了。

    我还检查了 Tivaware 上的示例、实际上、这里用于 Tiva 的源代码已经基于 TivaWare 示例、当然进行了微小的更改。 正如您所说、ADC 时钟和计时器设置等存在一些小错误(因为我在复制和发送代码时出错)。 但一般来说、检查这个 ADC 转换只是一个测试、我会在代码上对其他 ADC 端口进行注释、但我想这不是问题。

    正如我说过的,看起来两个都有不同的电压基准,考虑到在 LM 中:3V3是指 ADC 转换= 694 (ADC 转换),而3V3中的 Tiva 是1023,我认为 Tiva 中的转换是正确的。

    例如:

    在 LM 中:

    1023 ADC
    ---- =------ 因此、我的 ADC = 675、18 (它在我的初始表中的694次)。 我看到在 LM 中、基准电压看起来是5伏
    5伏3、3 (输入电压)

    功能

    1023 = ADC
    ---- ---- 因此、我将 ADC = 1023、并且可以看到 Tiva 是正确的基准、它是3、3votls。
    3、3V 3、3 (输入电压)

    OBS:在 Tiva 中、结果为4096 (12位)、但我将除以4、因此为1023。

    如果您不仅像我们到目前为止所做的那样注意代码、 我们可以看到、我们有这种差异。 另外,考虑到 Tiva 的代码是正确的,因为我使用输入电压3v 至0.6伏特进行了测量,转换看起来很正确,很有意义,我可以在表中看到。

    LM 和 Tiva 之间的行为操作可能有一些错误或差异。
    但我要说的是、Tiva 中的 ADC 正常工作。

    我还阅读了 TM4C129数据表和 TivaWare 外设驱动程序库用户指南、无法找到或发现我要修复或更改的内容。 我仍在阅读此文档、也在阅读 www.ti.com/.../spma050a.pdf 、看起来此信息对我的案例没有影响、我也检查了此材料-重要信息是有关 ADCResolutionSet (在 LM 中)的信息 但我不会在 LM 代码上使用此函数、也不会在 www.ti.com/.../spmu019p.pdf 上进行检查 、而此函数是设置10位或12位-如果我不使用此函数、我猜它在 LM 上默认为10位。
    我将继续阅读文档和论坛。

    请做您的评论。

    此致

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

    您好!

     我没有 LM3S9B96的相关经验、所以我需要提出一些问题。

     1.对于 LM3S9B96、您在3.3V 时的测量值为694。 这是为什么? 如果 LM ADC 为10位、那么它应该测量接近1024的值、对吧? 也许您的表格很难为我读、因为列标题(伏特、TM4C129NCPDT 和 LM3S9B96)与数据不一致。 我假设1010用于 TM4C129列、694用于 LM3S 列。  

     2.在 LM3S9B96数据表中、它说内部电压基准是带隙3.0V。 如果是这种情况、您为什么要在系统上施加超过3.0V 的电压。 无论如何、它们应该转换为1024作为最大值 根据您的代码、我看不到您为外部基准进行配置。

    3.对于 TM4C129、缺省电压基准是基于 VDDA 的内部基准。 您对 VDDA 电源施加了什么电压?

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

    您好!

    查尔斯

    感谢您的参与

    回答您的问题:

    1.对于 LM3S9B96、您在3.3V 时的测量值为694。 这是为什么?

    >>我不知道、因为我没有开发这部分代码、无论如何、我知道系统始终像这样工作。

    如果 LM ADC 为10位、那么它应该测量接近1024的值、对吧?

    >>是的、我同意您的观点、但出于任何原因、我不知道它的测量方式不像应该的那样-当然、在我看来。 但是、LM 项目不是由我完成的。 我也不确定。

    也许您的表格很难为我读、因为列标题(伏特、TM4C129NCPDT 和 LM3S9B96)与数据不一致。 我假设1010用于 TM4C129列、694用于 LM3S 列。

    >>是的、表有一点偏移、但正如您所想、我始终在附加图片来进行澄清。

     2.在 LM3S9B96数据表中、它说内部电压基准是带隙3.0V。 如果是这种情况、您为什么要在系统上施加超过3.0V 的电压。 无论如何、它们应该转换为1024作为最大值 根据您的代码、我看不到您为外部基准进行配置。

    >>是的、我也同意您的意见。 我没有在任何地方配置外部基准、我的意思是在代码上找不到任何类似的配置、我说过、因为这个代码不是我写的。 无论如何、我认为它在3.0V 基准电压下作为默认值工作。

    3.对于 TM4C129、缺省电压基准是基于 VDDA 的内部基准。 您对 VDDA 电源施加了什么电压?

    >>我也在使用 VDDA = 3、3伏。 LM4c129中的两种。

    主要问题是:在 LM 板中、我们可以看到看起来好像是错误的、但有其他过程使用此"错误"值来应用于系统的其余部分。 因此、我想在  TM4C129上重现此 LM 行为。

    也许会发现 LM 为什么要执行此转换、对于我和分析、由于我在转换中具有的值、它看起来使用的是5伏的基准电压(表)、 另一方面,代码和电路板上都没有这样做的理由,基本上系统是相等的,硬件和软件也是一样的。

    如果我发现 LM 为什么如此读数、那么我可以在 TM4C129上复制它。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我认为 LM 在测量输入时出错是一种错误的方法、您尝试在 TM4C129中重现"错误"。 您可能需要与以前使用 LM 的开发人员核实详细信息。 他是否在 AINx 输入和等之前使用了分压器 LM 的最大 ADC AINx 电压为3V、因此对其应用5V 输入也是错误的。 正如您所同意的、我建议您了解 LM 的行为方式为何是第一。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

    [引用用户="Charles Tsaaa"]但是,由于最近发现的问题,您需要将分频器配置为30才能达到500KSPS。 [/报价]

     下面 v.214178的 Tivaware 版本可能会产生1MSPS 或480/30=16MHz 的 ADCCLK?

    这就是 为什么解决 PSYSDIV 位问题(PLL=240Mhz)所做的工作 对于任何不使用 driverlib 214178进行编译的人都没有意义。  

    我不会看到或错过海报中说 Tivaware 版本为214178的地方。

    供参考 LM3S 系列10位 SAR ADC 具有5伏容差 AINx 输入。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、提问海报是一个好问题。 由于他是第一次使用 Tiva、我假设他下载了最新的 TivaWare 版本。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您是否有机会了解 LM 为什么不转换为预期值? 由于我没有听到您的反馈、我现在将关闭此主题。 如果您仍有疑问、您可以打开新主题或重新打开此主题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    查尔斯、很抱歉以前没有回答。

    关于哪个版本的 TivaWare 的问题,我使用的是 Tiva 外设驱动程序库的:2.1.3.156。 我不了解软件版本之间的时钟差异。

    我没有找到 LM 看起来不是很好的真正原因。 但是、我开始了一种使用 Tiva 中的"权限值"的新方法。

    可能是因为我在 ADC LM 输入中具有5伏的容差、这可能是此转换的原因、

    因此、我认为这个问题在 Tiva 端得到解决、而 LM 端我必须进行检查。

    此致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    另一个论坛专家建议我不要说、LM3S AINx 引脚上不能实现5V 容差。 然而、示波器在饱和区 AINx 输入端捕获的5V 脉冲峰值似乎从未像 M4 ADC 那样影响 M3 ADC、也可能影响 M4 ADC。 TM4C 满量程非常宽(4096)、这与 LM3S 有很大不同、更好的想法海报必须重新校准 M4 ADC 的输入<3V3。