STM32 SysTick定时器做延时函数

本文详细介绍了如何使用STM32的SysTick计时器来创建延时函数。通过配置SysTick控制器,设置LOAD寄存器和计数器,实现了微秒和毫秒级别的延时。在72MHz系统时钟下,最大延时受24位LOAD寄存器限制。
摘要由CSDN通过智能技术生成

在STM32中延时函数用的非常广泛,具体延时函数怎么使用,下面我们来进行想详解,本文主要介绍采用SysTick计时器来实验系统延时:

原理介绍:

                 SysTick计时器是一个24位的倒计数定时器,主要用来做操作系统的定时器,每来一个时钟周期计数减1,当计数到0时,他就会自动从LOAD寄存器中自动重装设置的初值,操作时只要不把CTRL寄存器中的ENABLE位清0,它就永远不会停止,即使在睡眠状态他也还是在继续奋斗。

配置代码如下:

static u8  fac_us=0;//us延时倍乘数
static u16 fac_ms=0;//ms延时倍乘数
//初始化延迟函数
//SYSTICK的时钟固定为HCLK时钟的1/8
//SYSCLK:系统时钟
void delay_init(u8 SYSCLK)
{
SysTick->CTRL&=0xfffffffb;//bit2清空,选择外部时钟  HCLK/8
fac_us=SYSCLK/8;   
fac_ms=(u16)fac_us*1000;
}    
//延时nms
//注意nms的范围
//SysTick->LOAD为24位寄存器,所以,最大延时为:
//nms<=0xffffff*8*1000/SYS

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值