手把手之STM32内核定时器

简介: ●什么是SysTick     SysTick是一个定时器,这个定时器的特殊之处在于,它是有内核来管理的,因此SysTick也被称作是内核定时器。它完全独立于STM32芯片,无论是哪款芯片都会有SysTick定时器只要芯片的内核一样,那么SysTick的使用方法就一样         ●SysTick的作用  对于STM32这样的高级芯片,我们可以给它搭载一个操作系统。

●什么是SysTick

    SysTick是一个定时器,这个定时器的特殊之处在于,它是有内核来管理的,因此SysTick也被称作是内核定时器。它完全独立于STM32芯片,无论是哪款芯片都会有SysTick定时器只要芯片的内核一样,那么SysTick的使用方法就一样        


SysTick的作用

 对于STM32这样的高级芯片,我们可以给它搭载一个操作系统。操作系统是有定时器的,那么操作系统的定时器就是基于SysTick来设计出来的。操作系统在设计定时器的时候无法估计它本身是搭载在哪一种芯片上的,而对于一个系列的芯片它们的内核是一样的,因此操作系统的定时器需要基于内核来设计。只有基于SysTick设计出来的操作系统才能移植到更多的芯片上。



CM4内核的SysTick

1、功能描述

SysTick被捆绑在NVIC中,用于产生SysTick异常,而且SysTick是一个倒数的定时器。


2、寄存器

SysTick_CTRL 控制和状态寄存器


  内部时钟是
AHB,外部时钟是AHB/8。关于FCLK和STCLK可以参考时钟树。

SysTick_LOAD 重载值寄存器


SysTick_VALUE 当前计数值寄存器



3、从手册到流程

    Systick是一个倒数的定时器,SysTick_VALUE代表当前的计数值是多少,一旦当前计数值为零,SysTick_LOAD的值就会自动重新装载到SysTick_VALUE。在计数为零的同时会产生一个标志,通过读取这个标志我们可以判断当前计数是否为零。在控制寄存器中还有一位是中断使能位,如果要使用中断功能,那么将这一位置1。另外systick有两个时钟可以选择,一个是AHB,另外一个是AHB/8。总结出systick的配置流程:

1)选择时钟源

2)设置重载值

3)清空当前值

4)使能中断(如果需要)

5)使能systick


4、从流程到代码




相关文章
|
5月前
|
传感器 存储
STM32--TIM定时器(3)
STM32--TIM定时器(3)
124 0
STM32--TIM定时器(3)
|
5月前
|
编解码 芯片
STM32--TIM定时器(2)
STM32--TIM定时器(2)
113 0
|
5月前
|
传感器
STM32--TIM定时器(1)
STM32--TIM定时器(1)
168 0
|
5月前
STM32F103标准外设库——SysTick系统定时器(八)
STM32F103标准外设库——SysTick系统定时器(八)
324 0
STM32F103标准外设库——SysTick系统定时器(八)
|
3月前
|
传感器
stm32f407探索者开发板(二十二)——通用定时器基本原理讲解
stm32f407探索者开发板(二十二)——通用定时器基本原理讲解
|
3月前
|
芯片
stm32f407探索者开发板(十二)——Systick滴答定时器-延时函数讲解
stm32f407探索者开发板(十二)——Systick滴答定时器-延时函数讲解
104 0
|
4月前
使用STM32F103标准库实现定时器控制LED点亮和关闭
通过这篇博客,我们学习了如何使用STM32F103标准库,通过定时器来控制LED的点亮和关闭。我们配置了定时器中断,并在中断处理函数中实现了LED状态的切换。这是一个基础且实用的例子,适合初学者了解STM32定时器和中断的使用。 希望这篇博客对你有所帮助。如果有任何问题或建议,欢迎在评论区留言。
251 2
|
4月前
|
芯片
【STM32】STM32简述定时器
【STM32】STM32简述定时器
|
3月前
STM32CubeMX 定时器
STM32CubeMX 定时器
75 0
|
3月前
stm32f407探索者开发板(二十三)——定时器中断实验
stm32f407探索者开发板(二十三)——定时器中断实验
101 0