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);   //计时结束就关掉定时器
	
}
相关推荐
长安第一美人几秒前
RT-Thread 工业屏驱动开发实战:UART 串口屏协议解析 + 数据实时刷新 + 设备驱动框架完整实现
驱动开发·嵌入式硬件·rt-thread·工业控制·uart通信·串口屏驱动
LDR0064 分钟前
突破快充壁垒,赋能全场景体验——LDR6600 2C1A快充协议芯片重磅来袭
嵌入式硬件
小宋加油啊8 分钟前
学习CBOR
学习
王钧石的技术博客13 分钟前
Harness Engineering学习
人工智能·学习·agent
weixin_4579433017 分钟前
arduino-舵机驱动
单片机·嵌入式硬件
babe小鑫26 分钟前
计算机专业学习数据分析的价值
学习·数据挖掘·数据分析
奔跑的Ma~28 分钟前
第三篇:Coze Skill核心模块详解——解锁个性化配置,提升Skill实用性
人工智能·学习·ai编程·skill·扣子
逆境不可逃29 分钟前
黑马 RabbitMq 基础篇 学习记录
学习·rabbitmq·ruby
AUTO_1507567596535 分钟前
SCT2160FNBR:7V 输入、6A、高效率同步降压 DC-DC 转换器
单片机·嵌入式硬件
LCG元39 分钟前
STM32实战:基于STM32F103的编码器电机测速与闭环控制
stm32·单片机·嵌入式硬件