STM32
直播中

张鑫

8年用户 930经验值
私信 关注
[问答]

STM32F030C8T6进入停止模式后所有时钟都停止了,为何SysTick还能工作?

我在使用STM32F030C8T6,按照参考手册的说法,在停止模式全部时钟停止。没有了时钟,Systick应该也不再工作,但实际上SysTick在停止模式还在工作。所以进入停止模式时要关闭SysTick,否则SysTick产生的中断将唤醒停止模式。问题是既然所有时钟已停止,为何SysTick还能工作?如果SysTick在停止模式还在工作,又是使用哪个时钟?

回帖(1)

神船大幅

2024-7-23 17:24:10
STM32F030C8T6是一款基于ARM Cortex-M0的微控制器,具有低功耗特性。在停止模式下,大部分时钟确实会停止,以降低功耗。然而,SysTick(系统定时器)在停止模式下仍然可以工作,这是因为它使用了独立的时钟源。

以下是解释为什么SysTick在停止模式下仍然可以工作的步骤:

1. 首先,我们需要了解SysTick的工作原理。SysTick是一个独立的定时器,用于提供周期性的中断,以便在应用程序中实现定时功能。

2. 其次,SysTick可以配置为使用不同的时钟源。在STM32F030C8T6中,SysTick可以配置为使用内部时钟(通常是CPU时钟)或外部时钟(例如LSE或LSI)。

3. 当STM32F030C8T6进入停止模式时,大部分时钟会停止,但SysTick仍然可以使用外部时钟源继续工作。这是因为外部时钟源(如LSE或LSI)在停止模式下仍然可以提供时钟信号。

4. 为了确保SysTick在停止模式下不会产生中断并唤醒微控制器,可以在进入停止模式之前关闭SysTick。这可以通过清除SysTick控制寄存器中的使能位来实现。

5. 如果需要在停止模式下使用SysTick,可以在配置SysTick时选择外部时钟源,并确保该时钟源在停止模式下仍然有效。

总之,SysTick在停止模式下仍然可以工作,因为它可以使用外部时钟源。为了避免SysTick在停止模式下产生中断并唤醒微控制器,可以在进入停止模式之前关闭SysTick。如果需要在停止模式下使用SysTick,可以选择外部时钟源并确保其在停止模式下仍然有效。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分