STM32系统定时器的三种延时方式

本文介绍了STM32系统定时器SYSTick的三种延时方式,包括中断延时法、仿火哥延时以及直接操作寄存器的非中断方式。详细讲解了每种方法的工作原理和适用场景,对于理解和应用STM32的系统定时器延时功能具有指导意义。
摘要由CSDN通过智能技术生成

SYSTick 简介

系统定时器,24bit,只能递减,存在于内核,嵌套在NVIC中,所有的Cortex-M内核的单片机都具有这个定时器。一般我们设置系统时钟 SYSCLK 等于 72M。当重装载数值寄存器的值递减到 0 的时候,系统定时器就产生一次中断,以此循环复。因为 SysTick 是属于 CM3内核的外设,所以所有基于 CM3 内核的单片机都具有这个系统定时器,使得软件在 CM3 单片机中可以很容易的移植。系统定时器一般用于操作系统,用于产生时基,维持操作系统的心跳。SysTick 在STM32的参考手册里面介绍的很简单,其详细介绍,请参阅《Cortex-M3 权威指南》。

Systick 寄存器

SysTick控制及状态寄存器

位段 名称 类型 复位值 描述
16 COUNTFLAG R/W 0 如果在上次读取本寄存器后,SYSTick已经计数到0后则该为为1
2 CLKSOURCE R/W 0 0:外部时钟 1:内部时钟
1 TICKINT R/W 0 1:SYSTick倒数计数到0后产生SYSTick异常请求 0:计数到0无动作
0 ENABLE R/W 0 SYSTick定时器使能位

SysTick重装载数值寄存器

位段 名称 类型 复位值 描述
23:0 RELOAD R/W 0 当倒数计数为0时,此值将会被重装载

SysTick当前数值寄存器

位段 名称 类型 复位值 描述
23:0 CURRENT R/W 0 读取时返回当前倒计数的值,写他则使之清0 ,同时还会清除在systick控制及状态寄存器中的COUNTFLAG标志

Systick 定时时间计算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值