STM32F4使用SysTick编写秒、毫秒、微秒延时函数

STM32F4使用SysTick编写秒、毫秒、微秒延时函数

相关理论介绍

STM32的SysTick是一个系统节拍定时器,主要用于提供周期性中断,支持实时操作系统的任务调度和精确延时功能。以下是对它的详细介绍:

基本概念:SysTick是ARM Cortex-M系列微控制器中的一个内置定时器,通常用于生成周期性中断信号,以实现任务调度和时间管理等功能。它是一个24位的倒计数定时器,当计数值从RELOAD寄存器中自动重装载并递减到0时,会产生一个中断,从而触发相应的处理函数。

时钟来源:SysTick的时钟源可以配置为AHB(高级总线时钟)或其1/8频率。这种灵活性允许开发者根据应用需求调整定时器的精度和间隔。

寄存器:SysTick拥有四个主要寄存器,包括控制及状态寄存器(CTRL)、重装载数值寄存器(LOAD)、当前值寄存器(VAL)和校准数值寄存器(CALIB)。其中,CTRL寄存器用于控制SysTick的操作模式和中断使能;LOAD寄存器存储自动重装载的值;VAL寄存器包含当前的计数值。

库函数:在STM32的固件库中,提供了两个主要的库函数来配置和使用SysTick:SysTick_Config和SysTick_CLKSourceConfig。这些函数简化了初始化和配置过程,使得开发者能够快速地设置SysTick的重装值和时钟源。

应用场景:除了支持实时操作系统的任务调度外,SysTick还可以用于创建精确的延时函数。通过设置适当的重装值,可以实现从微秒到秒级别的精确延迟,这对于需要精确时间控制的应用程序非常有用。

接下来介绍具体编程

在这里插入图片描述

// 延迟函数,单位为微秒
void delay_us(u16 us)
{

}

// 延迟函数,单位为毫秒
void delay_ms(u16 ms)
{

}

// 延迟函数,单位为秒
void delay_s(u16 s)
{

}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值