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 小时前
HTTM: Head-wise Temporal Token Merging for Faster VGGT论文学习
学习
喜欢吃燃面1 小时前
算法竞赛中的堆
c++·学习·算法
松涛和鸣2 小时前
DAY20 Optimizing VS Code for C/C++ Development on Ubuntu
linux·c语言·开发语言·c++·嵌入式硬件·ubuntu
自然语2 小时前
人工智能之数字生命-学习的过程
数据结构·人工智能·深度学习·学习·算法
罗汉松(山水白河)2 小时前
STM32F407核心板
stm32·单片机·嵌入式硬件
你好~每一天2 小时前
从传统行业到AI入门:我的CAIE Level I学习体验与思考
大数据·数据结构·人工智能·学习·jupyter·idea
DIY机器人工房2 小时前
简单理解:什么是GSM?
stm32·单片机·嵌入式硬件·gsm·diy机器人工房
hazy1k2 小时前
RA6E2基础-RTC时钟与日历介绍及使用
stm32·单片机·嵌入式硬件·esp32·实时音视频·ra
2401_853448232 小时前
FreeRTOS项目---WiFi模块(2)
stm32·单片机·freertos·esp8266·通信协议
烤麻辣烫3 小时前
黑马程序员苍穹外卖(新手)DAY8
java·开发语言·学习·spring·intellij-idea