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);   //计时结束就关掉定时器
	
}
相关推荐
linwq812 分钟前
OkHttp使用和源码分析学习(二)
学习·okhttp
肥肠可耐的西西公主15 分钟前
前端(AJAX)学习笔记(CLASS 2):图书管理案例以及图片上传
前端·笔记·学习
贩卖纯净水.2 小时前
REACT学习DAY02(恨连接不上服务器)
服务器·学习·react.js
南风过闲庭2 小时前
操作系统研究
大数据·人工智能·科技·学习·ai·系统架构
【云轩】3 小时前
基于STM32与IFX007T的电机驱动全解析(无人机/机器人实战)
stm32·机器人·无人机
陈无左耳、6 小时前
HarmonyOS学习第2天: 解锁语言与框架的无限可能
学习·华为·harmonyos
朝九晚五ฺ6 小时前
【Linux探索学习】第三十弹——线程互斥与同步(上):深入理解线程保证安全的机制
linux·运维·学习
柃歌6 小时前
【UCB CS 61B SP24】Lecture 5 - Lists 3: DLLists and Arrays学习笔记
java·数据结构·笔记·学习·算法
剑走偏锋o.O7 小时前
MyBatis框架详解与核心配置解读
java·学习·mybatis
2025年一定要上岸7 小时前
Java EE初阶-计算机导论
学习·java-ee