STM32设置内核定时器延时us

本文记录了如何在STM32F407上利用系统嘀嗒定时器设置us级别的延时。通过查阅《STM32F4xx-Cortex_-M4内核参考手册.pdf》和core_cm4.h,发现系统定时器时钟源为21Hz,每21次计数对应1us。文章提供了使用寄存器编写延时函数的方法,并提醒注意修改STM32f4xx.h文件中相关时钟配置,以确保延时精度。最大延时时间取决于系统时钟频率,时钟源为21Hz时可达798.91ms,而168Hz时则为99.86ms。
摘要由CSDN通过智能技术生成

记录

1.查找系统嘀嗒定时器,根据
《STM32F4xx-Cortex_-M4内核参考手册.pdf》来查看寄存器,
并结合core_cm4.h。
在这里插入图片描述
系统定时器的时钟源=21Hz,完成21000000次计数的时候,就代表说1秒时间的到达。
21000000/1000000=21,也代表说只要完成21次计数就是1微秒的时间。SysTick->LOAD决定了延时的时间。

STTM32F407为例,用寄存器写延时函数:
需要注意的是把STM32f4xx.h文件中的HSE修改为8000000,参数因子PLL_M修改为8
在这里插入图片描述
时钟源来源于21 Hz
最大延时时间= 2*24 1 -21000000= 798.91ms.
时钟源来源于168 Hz
最大延时时间= 2^24 -168000000= 99.86ms.

如果要实现5000ms延时的话,可以对上面进行改造,500ms的整数倍延时都可以
void delay_us
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值