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

一、定时器的相关配置

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

二、延时函数的实现

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

cpp 复制代码
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);   //计时结束就关掉定时器
	
}
相关推荐
魔法阵维护师1 分钟前
从零开发游戏需要学习的c#模块,第三十四章(设置界面)
学习·游戏·c#
记帖24 分钟前
STM32C542开发(1)----点亮LED
嵌入式硬件·stm32cubemx·stm32cubeide·stm32cubemx2·stm32c542cct6
m0_3771081429 分钟前
stm32平衡车mpu6050
stm32·单片机·嵌入式硬件
FserSuN40 分钟前
Machine Learning Specialization - Week 1, 9-20学习总结
人工智能·学习·机器学习
OBiO20131 小时前
肺部靶向 AAV 怎么选?如何解决靶向不精准、转导效率低的递送难题?
学习
我命由我123451 小时前
UGC、PGC、PUGC 极简理解
经验分享·笔记·学习·职场和发展·求职招聘·职场发展·学习方法
七老板的blog1 小时前
【Agent智能体】 任务规划工作流
python·学习·ai·开源
海鸥-w1 小时前
前端学习python第二天手敲笔记整理
前端·python·学习
资深流水灯工程师1 小时前
STM32 SAI 通讯原理与 TDM 应用
stm32·单片机·嵌入式硬件
山楂树の2 小时前
Video核心术语
学习·音视频