STM32 使用基本定时器实现微秒us级延时

在使用STM32的HAL库进行工程开发时,由于库本身自带的延时功能HAL_Delay只能实现微秒级的定时,无法满足工程实际需求,因此需要自定义一个精度更高的延时工具。

原理说明在这里插入图片描述

分频器首先对系统时钟进行性分频,CNT计数器对分频后的tick值进行计数,只需要读取TIMx_CNT寄存器中的值,即可计算时长。

工程实现方法

1、在CubeMX中配制定时器
这里选择基本定时器 TIM6,
选择为激活状态,
预分频PSC设置为31,即在0–31之间计数分频。因为系统时钟频率为32MHz,分频后频率为1MHz,即每次计数累加1/1000 000秒 = 1us,
计数区间65535,单次定时最长65535微秒,
计数模式为up 向上计数,
是否自动重新加载,这里选disable, 一次计数满后不再重新计数
在这里插入图片描述
2、工程自动生成的定时器初始化代码

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值