欢迎光临散文网 会员登陆 & 注册

STM32如何使用系统滴答定时器实现精准延时

2022-09-21 10:35 作者:信盈达  | 我要投稿

插播一条信息📢📢

直播时间:每天下午15:00到17:00,晚上19:00到21:00开启知识直播专场!!!

直播地址:B站主页直播间,某音搜索“信盈达”账号(有两个号,分享不一样的知识直播);

还是赶紧行动起来吧!!!  

定时器:能够记录时间并且达到设定时间还能有提醒功能的一种器件。


那么系统滴答定时器和普通的定时器有什么区别呢?

区别在于系统滴答定时器是捆绑在NVIC中断体系的定时器,常用于提供操作系统的时间节拍为各个不同任务许以不同数目的时间片,确保没有一个任务能霸占系统。

首先,让我们了解一下让我们了解一下系统滴答定时器的系统框图。从框图我们可以了解到系统滴答定时器主要由一个时钟源选择电路,一个重载值寄存器,一个24位递减计数器以及一个控制/状态寄存组成。

那么我们想要实现精准延时功能可以这样做:

第一步:通过状态/控制寄存器的第2位,可以选择计数器的时钟源,以此来决定计数器记一次数的时间。

第二步:通过重载值寄存器可以设置计数器从哪个数字递减计数到0。


第三步:当我们设置好第一步和第二步以后,这个时候我们就可以通过计数器记一次数的时间和计数的次数即可计数出计数器计数完的时间。这个时候只需要对状态/控制寄存器的第0位写1,以打开计数器使其开始计数。

第四步:通过轮询状态/控制寄存器的第16位,如果该位为1则说明计数器计数完成,那么就完成了对应的精准延时。

以STM32F407单片机为例,使用系统滴答定时器实现毫秒级精准延时参考代码如下:

以STM32F407单片机为例,使用系统滴答定时器实现微秒级精准延时参考代码如下:

结尾福利小彩蛋:🎉🎉

近期信盈达推出福利活动,各项课程资料免费领取!!

我们有嵌入式、物联网、python、单片机、C语言、PCB、Linux、硬件设计,STM32等课程资料等你来拿!!

还能加入训练营,和志同道合的小伙伴萌共同学习,一起进步!!💪

扫描下方二维码,添加小助手,马上领取资料哦(千万记得要备注:B站+课程名字🤓) 

小助手班班在训练营等你一起学习~小助手班班期待与你成为朋友~ 

来源:文章来源于网络,版权归原作者所有,如有侵权,请联系删除。

STM32如何使用系统滴答定时器实现精准延时的评论 (共 条)

分享到微博请遵守国家法律