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

stm32f407探索者开发板(二十二)——通用定时器基本原理讲解

文章目录

  • 一、三种定时器的区别
  • 二、通用定时器特点
    • 2.1 功能特点描述
    • 2.2 计数器模式
  • 三、通用定时器工作过程
  • 四、附

一、三种定时器的区别

  • STM32F40x系列总共最多有14个定时器
    在这里插入图片描述
  • 三种(4)STM32定时器区别
    在这里插入图片描述

二、通用定时器特点

2.1 功能特点描述

STM3 F4的通用 TIMx (TIM2、TIM3、TIM4 和 TIM5)定时器功能特点包括:

  • 16 /32 位向上、向下、向上/向下(中心对齐)计数模式,自动装载计数器(TIMx_CNT)。
  • 16 位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数 为 1~65535 之间的任意数值。
  • 4 个独立通道(TIMx_CH1~4),这些通道可以用来作为:
    输入捕获
    输出比较
    PWM 生成(边缘或中间对齐模式)
    单脉冲模式输出
  • 可使用外部信号(TIMx_ETR)控制定时器和定时器互连(可以用 1 个定时器控制另外一个定时器)的同步电路。
  • 如下事件发生时产生中断/DMA(6个独立的IRQ/DMA请求生成器):
    • 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)
    • 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)
    • 输入捕获
    • 输出比较
    • 支持针对定位的增量(正交)编码器和霍尔传感器电路
    • 触发输入作为外部时钟或者按周期的电流管理
  • STM32 的通用定时器可以被用于:测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和 PWM)等。
  • 使用定时器预分频器和 RCC 时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒间调整。STM32 的每个通用定时器都是完全独立的,没有互相共享的任何资源。

2.2 计数器模式

通用定时器可以向上计数、向下计数、向上向下双向计数模式。
①向上计数模式:计数器从0计数到自动加载值(TIMx_ARR),然后重新从0开始计数并且产生一个计数器溢出事件
②向下计数模式:计数器从自动装入的值(TIMx_ARR)开始向下计数到0,然后从自动装入的值重新开始,并产生一个计数器向下溢出事件。
③中央对齐模式(向上/向下计数):计数器从0开始计数到自动装入的值-1,产生一个计数器溢出事件,然后向下计数到1并且产生一个计数器溢出事件;然后再从0开始重新计数
在这里插入图片描述

三、通用定时器工作过程

在这里插入图片描述

图形可以分成四个部分

1.产生时钟源(一般使用内部时钟)

1-1:来源于内部时钟,TIMX_ETR,ITRx(其他定时器)和定时器外部通道

2.时机单元:实现计数功能(向上,向下,向上/向下)产生溢出(位于中间)

3.输入捕获功能(可以计算脉冲宽度)(位于左下)

4.输出比较功能:和寄存器中配置的值进行比较,可以用来调整脉冲的宽度和周期

下面是我从其他地方找到的

四、附

感应器的可以看看

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

//通用定时器3中断初始化
//arr:自动重装值。
//psc:时钟预分频数
//定时器溢出时间计算方法:Tout=((arr+1)*(psc+1))/Ft us.
//Ft=定时器工作频率,单位:Mhz
//这里使用的是定时器3!
void TIM3_Int_Init(u16 arr,u16 psc)
{TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);  ///使能TIM3时钟TIM_TimeBaseInitStructure.TIM_Period = arr; 	//自动重装载值TIM_TimeBaseInitStructure.TIM_Prescaler=psc;  //定时器分频TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1; TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStructure);//初始化TIM3TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE); //允许定时器3更新中断TIM_Cmd(TIM3,ENABLE); //使能定时器3NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn; //定时器3中断NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x01; //抢占优先级1NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03; //子优先级3NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);}//定时器3中断服务函数
void TIM3_IRQHandler(void)
{if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET) //溢出中断{LED1=!LED1;//DS1翻转}TIM_ClearITPendingBit(TIM3,TIM_IT_Update);  //清除中断标志位
}

相关文章:

stm32f407探索者开发板(二十二)——通用定时器基本原理讲解

文章目录一、三种定时器的区别二、通用定时器特点2.1 功能特点描述2.2 计数器模式三、通用定时器工作过程四、附一、三种定时器的区别 STM32F40x系列总共最多有14个定时器 三种(4)STM32定时器区别 二、通用定时器特点 2.1 功能特点描述 STM3 F4的通…...

cmake 入门三 常用变量和指令

cmake常用变量 一、cmake 变量引用的方式: 前面我们已经提到了,使用${}进行变量的引用。在IF 等语句中,是直接使用变量名而不通过${}取值 二,cmake 自定义变量的方式: 主要有隐式定义和显式定义两种,一…...

Linux基础命令-find搜索文件位置

文章目录 find 命令介绍 语法格式 命令基本参数 参考实例 1)在root/data目录下搜索*.txt的文件名 2)搜索一天以内最后修改时间的文件;并将文件删除 3)搜索777权限的文件 4)搜索一天之前变动的文件复制到test…...

获取浏览器硬件资源的媒体数据(拍照、录音、录频、屏幕共享)

目录一、window.navigator 对象包含有关访问者浏览器的信息取二、MediaDevices1.使用麦克风2.使用摄像头&#xff08;和音频一样&#xff09;3.拍照4.录屏三、MediaRecorder(录制,可录制音频视屏)一、window.navigator 对象包含有关访问者浏览器的信息取 <!DOCTYPE html>…...

Java入门教程||Java 日期时间||Java 正则表达式

Java 日期时间java.util包提供了Date类来封装当前的日期和时间。Date类提供两个构造函数来实例化Date对象。第一个构造函数使用当前日期和时间来初始化对象。Date( )第二个构造函数接收一个参数&#xff0c;该参数是从1970年1月1日起的毫秒数。Date(long millisec)Date对象创建…...

详解八大排序算法

文章目录前言排序算法插入排序直接插入排序:希尔排序(缩小增量排序)选择排序直接选择排序堆排序交换排序冒泡排序快速排序hoare版本挖坑法前后指针版本快速排序的非递归快速排序总结归并排序归并排序的非递归实现&#xff1a;计数排序排序算法复杂度及稳定性分析总结前言 本篇…...

python库streamlit学习笔记

什么是streamlit&#xff1f; Streamlit是一个免费的开源框架&#xff0c;用于快速构建和共享漂亮的机器学习和数据科学Web应用程序。它是一个基于Python的库&#xff0c;专为机器学习工程师设计。数据科学家或机器学习工程师不是网络开发人员&#xff0c;他们对花几周时间学习…...

C/C++开发,无可避免的内存管理(篇一)-约束好跳脱的内存

一、养成内存管理好习惯 1.1 养成动态对象创建、调用及释放好习惯 开发者手动接管内存分配时&#xff0c;必须处理这两个任务。分配原始内存时&#xff0c;必须在该内存中构造对象&#xff1b;在释放该内存之前&#xff0c;必须保证适当地撤销这些对象。如果你的项目是c项目&am…...

在React项目中引入字体文件并使用

一、背景 设计稿里某些文字所用的字体&#xff0c;系统默认不支持。 比如设计需要的这个字体&#xff1a;EmerlandRegular&#xff0c;即使在css里将文字字体设置为他们&#xff0c;实际效果也显示不出来。 二、现象及原因 1、样式 2、期待效果 3、实际效果 实际上是因为这个…...

STM32 CubeMX按键点灯

本文代码使用 HAL 库。 文章目录前言一、按键原理图二、CubeMX 创建工程三、代码讲解&#xff1a;1. GPIO的输入HAL库函数&#xff1a;2. 消抖&#xff1a;3. 详细代码四&#xff0c;实验现象&#xff1a;总结前言 我们继续讲解 stm32 f103&#xff0c;这篇文章将详细 为大家讲…...

2023链动2+1模式到底是什么?带你了解核心规则

2023链动21模式到底是什么&#xff1f;带你了解核心规则 2023-02-24 梦龙 大家好&#xff0c;我是你们熟悉而又陌生的好朋友梦龙&#xff0c;一个创业期的年轻人 传统的直销模式产品低价高卖&#xff0c;消费者难以接受。虽然直销省去了传统流通渠道的中间环节&#xff0c;但…...

【Java面试八股文宝典之基础篇】备战2023 查缺补漏 你越早准备 越早成功!!!——Day14

大家好&#xff0c;我是陶然同学&#xff0c;软件工程大三今年实习。认识我的朋友们知道&#xff0c;我是科班出身&#xff0c;学的还行&#xff0c;但是对面试掌握不够&#xff0c;所以我将用这100多天更新Java面试题&#x1f643;&#x1f643;。 不敢苟同&#xff0c;相信大…...

K8S篇-搭建kubenetes集群

安装环境 这里使用pve虚拟机搭建三台centos机器&#xff0c;搭建过程参考: Centos篇-Centos Minimal安装 此次安装硬件配置 CPU&#xff1a;2C 内存&#xff1a;2G 存储&#xff1a;64G 环境说明 操作系统&#xff1a;Centos 7.9 内核版本&#xff1a;6.2.0-1.el7.elrepo…...

文本生成图像简述4——扩散模型、自回归模型、生成对抗网络的对比调研

基于近年来图像处理和语言理解方面的技术突破&#xff0c;融合图像和文本处理的多模态任务获得了广泛的关注并取得了显著成功。 文本生成图像&#xff08;text-to-image&#xff09;是图像和文本处理的多模态任务的一项子任务&#xff0c;其根据给定文本生成符合描述的真实图像…...

财务共享建设,为什么需要电子影像系统?

某集团作为投资性集团公司&#xff0c;业务遍布全国20多个省市&#xff0c;控股公司200余家&#xff0c;业务范围涉及火电、供热、风电、天然气天然气、水务、铁路、港口、酒店、地产等20多个细分行业。 伴随着集团企业的快速发展&#xff0c;某集团在管理中面临“点多、面广、…...

「RISC-V Arch」SBI 规范解读(下)

第六章 定时器扩展&#xff08;EID #0x54494D45"TIME"&#xff09; 这个定时器扩展取代了遗留定时器扩展&#xff08;EID #0x00&#xff09;&#xff0c;并遵循 v0.2 中定义的调用规约。 6.1 函数&#xff1a;设置定时器&#xff08;FID #0&#xff09; struct sbi…...

Android framework socketpair

简述 在Linux中&#xff0c;socketpair函数可以用于创建一对相互连接的、通信域为AF_UNIX的套接字&#xff0c;其中一个套接字可用于读取&#xff0c;另一个套接字可用于写入。可以使用这对套接字在同一进程内进行进程间通信&#xff08;IPC&#xff09;。 以下是使用socketp…...

腾讯在海外游戏和短视频广告领域的新增长机会

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 腾讯(00700)的收入在过去几个季度一直在下降&#xff0c;部分原因是由于新冠疫情导致的经济放缓以及中国监管机构对大型科技公司的监管收紧导致游戏行业萎缩造成的。 然而&#xff0c;猛兽财经认为&#xff0c;这些不利因素…...

查找该学号学生的成绩。

从键盘输入某班学生某门课的成绩&#xff08;每班人数最多不超过40人&#xff09;&#xff0c;当输入为负值时&#xff0c;表示输入结束&#xff0c;试编程从键盘任意输入一个学号&#xff0c;查找该学号学生的成绩。**输入格式要求&#xff1a;"%ld"(学号) "%l…...

为Webpack5项目引入Buffer Polyfill

前言 最近在公司的一个项目中使用到了Webpack5&#xff0c; 然而在使用某个npm包的时候&#xff0c;出现了Buffer is not defined 这个问题&#xff0c;原因很明显了&#xff0c;因为浏览器运行时没有Buffer这个API&#xff0c;所以需要为浏览器引入Buffer Polyfill. Webpack5…...

别再用Delay了!用GD32的TIMER5实现精准1ms定时,让你的嵌入式程序更高效

告别阻塞式延时&#xff1a;用GD32 TIMER5构建高效嵌入式系统心跳 在嵌入式开发中&#xff0c;时间管理如同系统的心跳&#xff0c;决定了整个应用的响应速度和执行效率。许多开发者习惯使用delay_ms()这类阻塞式延时函数&#xff0c;却不知这会让CPU陷入无意义的等待状态&…...

像素语言·跨维传送门应用场景:高校外语教学AI助教落地实践

像素语言跨维传送门应用场景&#xff1a;高校外语教学AI助教落地实践 1. 引言&#xff1a;当像素冒险遇上语言学习 在高校外语教学领域&#xff0c;传统翻译工具往往显得过于机械和枯燥。学生们面对冰冷的界面和生硬的翻译结果&#xff0c;学习热情很容易被消磨。而像素语言跨…...

天问Block环境下ASRPRO语音芯片实战:语音交互、GPIO控制与PWM调光开发指南

1. 天问Block与ASRPRO芯片开发入门 第一次接触天问Block和ASRPRO语音芯片时&#xff0c;我被它们的组合惊艳到了。这个开发环境就像乐高积木一样&#xff0c;通过拖拽代码块就能完成复杂的功能开发&#xff0c;特别适合像我这样的硬件爱好者。ASRPRO作为一款专为语音交互设计的…...

PUBG罗技鼠标宏:告别压枪困扰的终极解决方案

PUBG罗技鼠标宏&#xff1a;告别压枪困扰的终极解决方案 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 还在为《绝地求生》中的武器后坐力而烦恼…...

3大场景解放双手:SteamShutdown智能管理下载与自动控制电脑的完整方案

3大场景解放双手&#xff1a;SteamShutdown智能管理下载与自动控制电脑的完整方案 【免费下载链接】SteamShutdown Automatic shutdown after Steam download(s) has finished. 项目地址: https://gitcode.com/gh_mirrors/st/SteamShutdown 你是否曾在深夜开启游戏下载后…...

Omni-Vision Sanctuary 网络协议分析辅助:可视化网络数据包与流量模式识别

Omni-Vision Sanctuary 网络协议分析辅助&#xff1a;可视化网络数据包与流量模式识别 1. 网络数据可视化的新思路 网络工程师每天面对海量的数据包和流量日志&#xff0c;传统的分析工具往往需要依赖复杂的命令行操作和专业图表解读。而Omni-Vision Sanctuary模型为我们提供…...

终极Enformer基因表达预测指南:如何在10分钟内快速部署深度学习模型

终极Enformer基因表达预测指南&#xff1a;如何在10分钟内快速部署深度学习模型 【免费下载链接】enformer-pytorch Implementation of Enformer, Deepminds attention network for predicting gene expression, in Pytorch 项目地址: https://gitcode.com/gh_mirrors/en/enf…...

别再只记*#*#284#*#*了!揭秘小米手机日志抓取的‘售后模式’:CIT工具(*#*#6484#*#*)的隐藏用法与解读

解锁小米手机CIT工具的隐藏潜能&#xff1a;从硬件诊断到日志深度解析 在智能手机高度普及的今天&#xff0c;用户对设备问题的自主排查需求日益增长。小米手机内置的CIT工具&#xff08;Customer Interface Test&#xff09;作为售后服务的核心诊断利器&#xff0c;其实蕴藏着…...

实战指南:借鉴vmware官网混合云方案,用快马平台生成高可用应用部署模板

今天在VMware官网上研究混合云方案时&#xff0c;发现他们的企业级架构设计特别值得借鉴。正好最近在用InsCode(快马)平台做项目部署&#xff0c;就尝试把官网的混合云方案转化成可落地的模板。整个过程比想象中顺利&#xff0c;分享下我的实战经验。 架构设计思路 VMware官网…...

当生物黑客入侵脑机接口:安全测试救了我们公司

在脑机接口&#xff08;Brain-Computer Interface, BCI&#xff09;技术飞速发展的今天&#xff0c;软件测试从业者正面临前所未有的安全挑战。作为一名资深测试工程师&#xff0c;我亲历了一场惊心动魄的生物黑客入侵事件——一场针对我们公司脑机接口产品的攻击险些导致灾难性…...