stm32延时us寄存器_自己写一个STM32 HAL库的US微秒延时函数

本文介绍了如何在STM32 HAL库中自定义一个微秒级别(US)的延时函数,通过利用SysTick定时器计算出等待特定微秒所需的计数值。代码已提供,适用于精准延时范围2~999US,但频繁调用可能影响HAL_Delay的毫秒延时精度。
摘要由CSDN通过智能技术生成

当本菜鸟开始接触STM32的时候还是看了原子哥的寄存器教程才跳坑的。

现在ST已经把HAL库推向了主流,但是令我不解的是,HAL那么强大,居然没有一个微秒级别的延时函数?!

黑人问号脸。

好了,废话不多,直接上代码。

#include "delay_us.h"

/*****************************************************************

* 基于STM32F0 HAL的微秒延时函数

* @功能:实现US级延时

* @注意:精准延时范围:2~999US

*2019-07-03Designed By XiaoYang https://www.pypyn.com

******************************************************************/

uint32_t CFG_VAL = 0;

void HAL_Delay_US(__IO uint32_t Delay)

{

if(Delay < MAX_Delay_CNT && Delay > 1)

{

uint32_t wait = SysTick->LOAD - ((Delay - 1) * CFG_VAL);

//CFG_VAL =HAL_RCC_GetHCLKFreq()/1000U/1000U))

//计算出等待1US需要的计数器值

SysTick->V

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值