当前位置: 首页 > news >正文

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);   //计时结束就关掉定时器}

http://www.lryc.cn/news/513739.html

相关文章:

  • 深度学习——损失函数汇总
  • 1、单片机寄存器-io输入实验笔记
  • 记忆旅游系统|Java|SSM|VUE| 前后端分离
  • CentOS7下的 OpenSSH 服务器和客户端
  • RabbitMQ基础篇之Java客户端 Topic交换机
  • 微服务-Sentinel新手入门指南
  • 传统听写与大模型听写比对
  • http性能测试命令ab
  • 前端:轮播图常见的几种实现方式
  • Pytest基础01: 入门demo脚本
  • ruoyi 多租户 开启后针对某一条sql不适用多租户; 若依多租户sql规则修改
  • driftingblues6靶机
  • Neo4j GDS 2.0 安装与配置
  • A*算法与人工势场法结合的路径规划(附MATLAB源码)
  • BootstrapTable处理表格
  • UniApp 打开文件工具,获取文件类型,判断文件类型
  • docker-开源nocodb,使用已有数据库
  • Mysql COUNT() 函数详解
  • 单周期CPU电路设计
  • 从零开始采用命令行创建uniapp vue3 ts springboot项目
  • 跟着逻辑先生学习FPGA-实战篇第一课 6-1 LED灯闪烁实验
  • springboot 跨域配置
  • C语言宏和结构体的使用代码
  • 微信小程序 覆盖组件cover-view
  • 【Redis知识】Redis进阶-redis还有哪些高级特性?
  • 【Pytorch实用教程】深入了解 torchvision.models.resnet18 新旧版本的区别
  • 攻防世界 - Web - Level 3 | very_easy_sql
  • 使用Java Selenium修改打开页面窗口大小
  • 基于BiLSTM和随机森林回归模型的序列数据预测
  • 【Vim Masterclass 笔记04】S03L12:Vim 文本删除同步练习课 + S03L13:练习课点评