欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > STM32完全学习——使用定时器1精确延时

STM32完全学习——使用定时器1精确延时

2025/2/24 19:07:21 来源:https://blog.csdn.net/2401_83010734/article/details/144812914  浏览:    关键词:STM32完全学习——使用定时器1精确延时

一、定时器的相关配置

首先一定要是递减定时器,递增的不太行,控制的不够准确,其次在大于10微秒的延时是非常准确的,小于的话,就没有那没准,但是凑合能用。误差都在一个微秒以内。使用高级定时器也就是时钟频率高的定时器,是比较好用的。

二、延时函数的实现

这里使用阻塞的方式实现,定时范围就是3120个微秒。

void delay_us(uint32_t us)
{HAL_TIM_Base_Start(&htim1);__HAL_TIM_SET_COUNTER(&htim1, us*21);   //动态更改计数器里面的值while (__HAL_TIM_GET_COUNTER(&htim1) != 0)  //判断计数器里面的值是否计时结束{                                           //因为是递减计数器,因此以0作为判断}HAL_TIM_Base_Stop(&htim1);   //计时结束就关掉定时器}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词