STM32F1定时器(TIM1~TIM8)

news2024/10/7 18:22:32

一、stm32f1定时器简介

1.1、定时器分类

STM32共11个定时器,2个高级控制定时器TIM1和TIM8,4个通用定时器TIM2~TIM5,两个基本定时器TIM6和TIM7,两个看门狗定时器和一个系统滴答定时器Systick.
高级定时器TIM1和TIM8的时钟由APB1产生,其它六个通用定时器的时钟由APB2产生。它们的最大频率都可以配置成系统时钟的频率。

定时器种类位数计数模式捕获/比较通道应用场景
通用定时器
TIM2~TIM5
16向上,向下,双向4定时计数,PWM,输入捕获,输出比较
高级定时器
TIM1和TIM8
16向上,向下,双向4定时计数,PWM,输入捕获,输出比较
基本定时器
TIM6和TIM7
16向上,向下,双向4定时计数

1.2、计数模式

通用定时器可以向上计数、向下计数、向上向下双向计数模式。

  • 向上计数模式:计数器从0计数到自动加载值(TIMx_ARR),然后重新从0开始计数并且产生一个计数器溢出事件。
  • 向下计数模式:计数器从自动装入的值(TIMx_ARR)开始向下计数到0,然后从自动装入的值重新开始,并产生一个计数器向下溢出事件。
  • 中央对齐模式(向上/向下计数):计数器从0开始计数到自动装入的值-1,产生一个计数器溢出事件,然后向下计数到1并且产生一个计数器溢出事件;然后再从0开始重新计数。

假设我们设置的TIMx_ARR初始值为100,那么向上计数就是从0计数到99后,重新从0开始计数;向下计数就是从99开始递减计数到0,然后重新从99开始递减计数;向上/向下计数就是从0递增计数到99,然后再从99递减计数到0,然后反复执行。

二、使用cubemx配置定时器

2.1、首先配置时钟树

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NNVJcub5-1684309146749)(https://note.youdao.com/yws/res/30730/WEBRESOURCE757e276116b98f9806d4df930e62ba9d)]

这里配置成最高频率,72MHz。高级定时器TIM1和TIM8的时钟由APB1产生,其它六个通用定时器的时钟由APB2产生。因此所有定时器的基础频率都是72MHz.

2.2、配置定时器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Guup2aeN-1684309146750)(https://note.youdao.com/yws/res/30734/WEBRESOURCEf6a0f221526b86eac13416f28546d89f)]

这里我们配置的是定时器TIM3.

  • Prescaler 预分频系数-1,我们配置的时钟为72MHz,这里设置成72-1,得到的定时器时钟频率为1MHz;
  • Counter Mode 计数模式,Up表示向上计数,Down表示向下计数,
  • Counter Period 计数周期,TIMx_ARR寄存器的值,定时器的位数为16位,因此最大值为65535

使用cubemx配置定时器后,定时器并不会自动打开,在代码中需要调用如下函数开启定时器:

HAL_TIM_Base_Start(&htim3);

2.3、实现us延时

void delay_us(uint16_t us)

{
    uint16_t differ=__HAL_TIM_GET_COUNTER(&htim3);
	uint32_t count = differ+us;
    if(differ+us>65535)
	{
		while(__HAL_TIM_GET_COUNTER(&htim3)>(count-65535));
		while(__HAL_TIM_GET_COUNTER(&htim3)<(count-65535));
	}
	else
	{
	    while(differ+us>__HAL_TIM_GET_COUNTER(&htim3))
		{
			
		}
	}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/539273.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

想改进婴儿fNIRS数据分析?基于这些先进方法的评估值得一看!

导读 在过去的十年中&#xff0c;fNIRS提供了一种非侵入性的方法来研究发展人群的神经激活。尽管fNIRS在发展认知神经科学中的应用越来越多&#xff0c;但在如何预处理和分析婴儿fNIRS数据方面却缺乏一致性或共识。本研究考察了对婴儿fNIRS数据应用更高级统计分析的可行性&…

智聚北京!相约全球人力资源数智化峰会

人力资源是推动经济社会发展的第一资源。作为我国经济压舱石的中央企业在对标世界一流企业和管理提升方面的持续创新&#xff0c;各行业领军企业围绕组织变革、管理升级、全球化发展走深走实。人力资源管理正从传统职能管理与管控&#xff0c;向紧贴业务战略实现、组织边界和人…

阿里巴巴-1688-退款退货明细下载(导出)

DUMUZ是什么&#xff1f; Dumuz是一款软件产品&#xff0c;可模拟人在电脑上的不同系统之间操作行为&#xff0c; 替代人在电脑前执行具有规律与重复性高的办公流程。 目前基于实际业务场景在软件搭建了模拟实现天猫/淘宝批量订单发货、备注插旗、页面商品数据采集、已买宝贝订…

小米AI实验室多模态图片翻译论文入选自然语言处理领域顶级会议ACL 2023

近日&#xff0c;ACL 2023的论文录用结果公布&#xff0c;小米AI实验室机器翻译团队联合厦门大学苏劲松教授团队在多模态图片翻译方向的最新研究成果已被ACL 2023主会录用&#xff0c;标志着小米在多模态机器翻译方向取得了重要进展。 ACL&#xff08;Annual Meeting of the As…

单片机--实战练习

目录 【1】GPIO 1.定义 2.应用 I - Input - 输入采集 O - Output - 输出控制 ​编辑​编辑 3.GPIO结构框图 4.功能描述 输入功能 输出功能 5.相关寄存器 【2】点亮一盏LED灯 1.实验步骤 2.编程实现 3.编译下载 4.复位上电 练习&#xff1a;实现LED灯闪烁…

Cocos Shader 转场特效合集!卡牌必备,免费开源!

接前两期&#xff0c;孙二喵的 AIGC 卡牌接近尾声了&#xff01;链接&#xff1a; AIGC 制作卡牌1AIGC 制作卡牌2 最近&#xff0c;二喵遇到一个很头疼的问题&#xff01;就是如何实现既流畅、又生动的转场特效。 经过一番大战之后&#xff0c;我实验了多个效果&#xff0c;一共…

记录--vue3优雅的使用element-plus的dialog

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 如何优雅的基于 element-plus,封装一个梦中情 dialog 优点 摆脱繁琐的 visible 的命名&#xff0c;以及反复的重复 dom。 想法 将 dialog 封装成一个函数就能唤起的组件。如下&#xff1a; addDialog(…

Python每日一练(20230518) 螺旋矩阵 I\II\III\IV Spiral Matrix

目录 1. 螺旋矩阵 I Spiral Matrix i &#x1f31f;&#x1f31f; 2. 螺旋矩阵 II Spiral Matrix ii &#x1f31f;&#x1f31f; 3. 螺旋矩阵 III Spiral Matrix iii &#x1f31f;&#x1f31f; 4. 螺旋矩阵 IV Spiral Matrix iv &#x1f31f;&#x1f31f; &#…

探索Vue的组件世界-组件通信

目录 组件跨层级访问 访问外层组件 定向消息 ref&#xff08;父组件访问子组件&#xff09; 依赖注入 依赖注入&#xff0c;vue2.0实现源码 组件封装 组件二次封装 小结 组件跨层级访问 访问外层组件 // 获取 根组件 的数据 this.$root.pri;// 写入 根组件 的数据 t…

人机融合智能的测量、计算与评价

老子在《道德经》第二十一章写道:"道之为物,惟恍惟惚。惚兮恍兮,其中有象;恍兮惚兮,其中有物。窈兮冥兮,其中有精;其精甚真,其中有信。"&#xff08;“道”这个东西&#xff0c;没有清楚的固定实体。它是那样的恍恍惚惚啊&#xff0c;其中却有形象。它是那样的恍恍惚…

怎样才能做好企业内部wiki知识库呢?

企业内部wiki知识库是一种常用的知识管理方式。通过建立企业内部wiki知识库&#xff0c;企业可以更好的管理和共享知识&#xff0c;提高员工的工作效率和生产力。 详解如何做好企业内部wiki知识库的方法&#xff1a; 一、设计知识库架构 企业内部wiki知识库的架构设计是非常…

抖音seo源码优化/企业号搜索排名/开源搭建

什么是抖音seo&#xff1f; 抖音SEO是指通过提高在抖音平台的关键词排名&#xff0c;来获取流量、获取客户的目的。抖音的流量主要分为付费流量、推荐流量和搜索流量&#xff0c;其中搜索流量因为付费太贵、上热门太累而成为另一种进入方式1。抖音拥有庞大的用户基数&#xff…

shell命令以及运行原理,命令行解释器/bash,Linux Kernel与Shell简单理解等

引入 输入指令的过程本质上就是在输入一个字符串&#xff0c;然后指令的本质就是编译好的程序.exe与脚本。它们都是在系统的特定路径之下放着呢。然后我们所有指令最终都是要到操作系统内部去运行的&#xff0c;也就是说各种各样的指令都需要操作系统的参与。我们有各种各样的…

WordPress 如何开启多站点 含Apache和Nginx伪静态规则

WordPress 3.0以上的版本支持直接开启多站点模式,这样一来,你可以在一个后台切换多个站点进行管理。 最近打算折腾一个主题演示站,给每个主题使用独立的子站点来搭建演示,如果是Apache环境,配置就比较容易,但是倡萌使用的是 Nginx,花了大量的时间测试了N多网络上的伪静…

什么是无头浏览器?如何使用Golang实现无头浏览器截图?

前言 在Web开发中&#xff0c;有时需要对网页进行截图&#xff0c;以便进行页面预览、测试等操作。 而使用无头浏览器来实现截图功能&#xff0c;可以避免手动操作的繁琐和不稳定性。 这篇文章将介绍&#xff1a;使用Golang进行无头浏览器的截图&#xff0c;轻松实现页面预览…

苹果电脑PS Raw增效工具:Camera Raw 15中文版

Camera Raw 15是Adobe公司开发的一款用于处理RAW格式图像的插件软件&#xff0c;它可以帮助用户在Photoshop、Lightroom等软件中对RAW格式图像进行调整和优化。Camera Raw 15提供了丰富的调整工具&#xff0c;包括白平衡、曝光、色彩、锐化、噪点、透视等&#xff0c;可以让用户…

home assistant添加天气预报

先上效果图&#xff0c;大体就是这个样子 1.天气API链接 https://www.windy.com 选择页面嵌入式微件 下面是完整的HTML 代码&#xff0c;但是需要修改一下 <iframe width"1000" height"600" src"https://embed.windy.com/embed2.html?lat21.2…

【腾讯云Finops Crane集训营】利用云原生成本优化项目实现降本增效泰裤辣~

Crane 是一个基于 FinOps 的云资源分析与成本优化平台。在保证客户应用运行质量的前提下实现极致的降本。 文章目录 一、 前言&#x1f350;二、 Crane开源项目简介&#x1f34e;2.1. Crane整体框架&#x1f352;2.2. Crane主要功能&#x1f345; 三、Crane实验前期准备&#x…

PaLM 2 硬刚 GPT-4,未来还有变数

在 ChatGPT 没有出现之前&#xff0c;谷歌多年来一直是 AI first战略 &#xff0c;不出意外的话还会是领头羊&#xff0c;手握 DeepMind 和 Google Brain 两大 AI 王牌&#xff0c;再加上投资技术实力雄厚的 Anthropic&#xff0c;论资排辈都得是他。时不我与&#xff0c;被 Op…

链表--part 1--链表基础理论(概括)

文章目录 单链表双链表循环链表链表链表的定义删除节点增加节点 首先什么是链表&#xff0c;链表是一种通过指针串联在一起的线性结构&#xff0c;每一个节点由两部分组成&#xff0c;一个是数据域一个是指针域&#xff08;存放指向下一个节点的指针&#xff09;&#xff0c;最…