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.

[参考译文] TM4C1290NCPDT:仍能##39;t 使 SysTick 工作。

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1335326/tm4c1290ncpdt-still-can-t-get-systick-to-work

器件型号:TM4C1290NCPDT

我想在这个论坛的最后帮助下,我已经解决了我的 SysTick 不点火的问题,但我错了。

我用示例代码创建了一个简单工程来进行测试:

/**
 * main.c
 */

#包含
#包含

#include "driverlib/gpio.h"
#include "driverlib/interrupt.h"
#include "driverlib/sysctl.h"
#include "driverlib/SysTick。h"

void SysTickISR (void){

   volatile int i;

   for (i=0;i<10;i++){
       i = i;
   }



int main (空)
{

   unsigned int SYSCLK = SysCtlClockFreqSet (SYSCTL_XTAL_20MHz | SYSCTL_OSC_MAIN | SYSCTL_USE_OSC)、20000000);
   SysTickPeriodSet (SYSCLK);
   SysTickIntRegister (SysTickISR);
   IntMasterEnable();
   SysTickIntEnable ();
   SysTickEnable ();

   while (1){}

这不奏效。  BTW,示例代码是错误的,因为它没有 SysTickIntRegister ()命令!    TivaWare_C_series_2_1_4_178。

MPU 芯片有缺陷??

谢谢、Doug

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

    请勿尝试连接的 CCS 项目。 我在 LaunchPad 上运行它、我可以看到 SysTick 中断。 我使用 TivaWare 中的示例。  

    e2e.ti.com/.../4863.systick.zip

    BTW,示例代码是错误的,因为它没有 SysTickIntRegister ()命令!  [/报价]

    这不是真的。 示例 SysTick .c 文件仅为一个源文件。 它并不是一个完整的 CCS 项目。 您将需要将静态中断矢量插入 startup 文件中。 请参阅示例 I attachment、这是完整的 CCS 工程。 startup 文件中的向量表中填充了向量,尤其是 SysTickIntHandler ()。

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

    在我的 SysTick 示例文件夹中、文件是"interrupt.c"

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

    我发现问题出在 MPU。  VDDA 的工作电压为3.3伏、而 Vdd 的工作电压为3.1伏。  尽管3.1伏在芯片可接受的 Vdd 范围内、但我认为它不希望离 VDDA 太远。  当我将 Vdd 提升到3.25V 时、SysTick 开始正常工作。

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

    嗯、有些奇怪的事情正在发生、因为 SysTick 再次停止工作。  会让你知道我找到了什么。

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

    好的、我之前是正确的。  Vdd 电源的高阻抗点存在一些污染、在清理后、电压重新降至约3.1伏、SysTick 重新恢复到3.25V。

    我在数据表中看到一条注释:VDDA 必须为3.3伏才能使芯片正常工作、是否有类似注释指出 VDD 必须接近 VDDA 才能使芯片正常工作?