Other Parts Discussed in Thread: MSPM0G3519, SYSCONFIG
器件型号: MSPM0G3519
主题: SysConfig 中讨论的其他器件
您好、
我正在尝试重新初始化 SysTick 计时器。 我可以成功取消初始化它、但当我再次尝试初始化它时、SysTick 中断不再触发。 我是否需要遵循特定的序列或过程来正确地重新初始化 SysTick
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.
Other Parts Discussed in Thread: MSPM0G3519, SYSCONFIG
器件型号: MSPM0G3519
主题: SysConfig 中讨论的其他器件
您好、
我正在尝试重新初始化 SysTick 计时器。 我可以成功取消初始化它、但当我再次尝试初始化它时、SysTick 中断不再触发。 我是否需要遵循特定的序列或过程来正确地重新初始化 SysTick
您如何(确切地)取消初始化/重新初始化?
DL_SysTick_init () 在中断被禁用的情况下使计时器停止。 DL_SysTick_config () 会使计时器保持运行状态、且中断已启用。
我没有看到 (Driverlib) deInit 函数。 如果使用 DL_SysTick disable() 停止它、则可以通过调用 DL_SysTick enable () 来反转此操作。
[这些功能很小。 您可以通过右键单击名称、然后单击“打开声明“来查看他们的工作。]
我正在DL_SYSTICK_disable()进入STANDBY0模式之前和DL_SYSTICK_enable()退出模式后使用、但 SysTick 仍然不会恢复。 我也尝试直接使用__NVIC_DisableIRQ(SysTick_IRQn)和__NVIC_EnableIRQ(SysTick_IRQn)来禁用和重新启用中断、但行为是相同的。
我还尝试通过直接访问其寄存器来禁用计时器:
SysTick ->CTRL = 0;
SysTick -> LOAD = 0;
SysTick -> VAL = 0;
然后通过调用正常初始化序列SysTick_Config();、但计时器仍然不起作用。
您能否分享一个简单有效的示例、该示例演示了在STANDBY0 MSPM0G3519 上暂停和恢复 SysTick 的正确方法、包括任何所需的重新初始化步骤?
您好 Diego、抱歉、您的回复太晚了。 以下是我所用方法的代码片段:
片段 1:
DL_SysTick disable();
尊敬的 Embedded:
主要是您最初设置代码的方式。 我可以看到、该问题依赖于您在触发中断之前禁用 SysTick。 如果您禁用 SysTick 模块、不会触发中断。 我建议在中断中禁用它、然后在需要时重新启用它。
您好、Embeede:
在您之前分享的 代码片段中、我看不到您启用了 SysTick 计时器、并将 DL_SysTick config() 调用为以下代码: