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

stm32f4xx-定时器

文章目录

  • 一、硬件定时器
    • 1、定义
    • 2、STM32F407的定时器有以下特征
      • a.所有的定时器都能实现最基本的定时功能
      • b.基本定时器是专门提供给音频的输出接口
      • c.计数器模式:向上,向下,向上下
      • d.DMA(直接存储器访问)请求:传输数据只需要通过DMA,不用经过CPU,减少CPU的占用
      • e.PWM是脉冲宽度调制,在工业应用领域用途非常广泛
      • f.16位可编程分频器,用于对计数器时钟频率进行分频(运行时修改),分频系数1~65536之间
      • 注:
    • 3、计数模式
  • 二、定时计算
      • 1、如果APB预分频器为1,定时器时钟频率等于APB域(APB1和APB2)的频率(一般预分频器不可能为1)
      • 2、否则,等于APB域(APB1和APB2)的频率的两倍
    • 3、定时器硬件时钟
    • 4.定时500ms

一、硬件定时器

1、定义

​ 设置等待时间,到达后则执行指定的操作的硬件

2、STM32F407的定时器有以下特征

在这里插入图片描述

​ 具有基本的定时功能,也有PWM输出(灯光的亮度控制、电机的转速)、脉冲捕获功能(红外捕捉)

2个高级定时器、10个通用定时器和2个基本定时器

高级定时器(TIM1 和 TIM8 ),挂载到APB2

​ 具有16位定时器功能,也具有PWM输出高级控制功能

通用定时器(TIM2 到 TIM5),挂载到APB1

​ 具有16位定时器功能,也具有PWM输出控制功能

通用定时器(TIM9 到 TIM14 ),挂载到APB1和APB2

​ 具有16位定时器功能,也具有PWM输出控制功能

基本定时器:(TIM6 和 TIM7),挂载到APB1

​ 具有16位定时器功能

a.所有的定时器都能实现最基本的定时功能

b.基本定时器是专门提供给音频的输出接口

c.计数器模式:向上,向下,向上下

d.DMA(直接存储器访问)请求:传输数据只需要通过DMA,不用经过CPU,减少CPU的占用

e.PWM是脉冲宽度调制,在工业应用领域用途非常广泛

f.16位可编程分频器,用于对计数器时钟频率进行分频(运行时修改),分频系数1~65536之间

注:

TIM是TIMER单词的缩写

通用定时器与高级定时器(CH表示输出通道)

3、计数模式

在这里插入图片描述

二、定时计算

《STM32F4XX中文参考手册.pdf》108页

STM32F405xx/07xx和STM32F415xx/17xx的定时器时钟频率由硬件自动设置。分为两种情况:

1、如果APB预分频器为1,定时器时钟频率等于APB域(APB1和APB2)的频率(一般预分频器不可能为1)

2、否则,等于APB域(APB1和APB2)的频率的两倍

关于APB1与APB2预分频值得说明在system_stm32f4xx.c文件的头部,详细描述如下
在这里插入图片描述

关于APB1和APB2预分频值设置在system_stm32f4xx.c文件,详细代码如下:

在这里插入图片描述

3、定时器硬件时钟

在这里插入图片描述

4.定时500ms

//计数值 84000000/8400 = 10000hz/2,决定定时时间1/2秒

TIM_TimeBaseStructure.TIM_Period = (10000/2)-1;

TIM_TimeBaseStructure.TIM_Prescaler = 8400-1; //预分频值 8400-1 + 1 = 8400

//向上计数的方法

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;

8400

//向上计数的方法

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;

TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

相关文章:

  • (过滤器)Filter和(监听器)listener
  • Java 并发编程解析 | 如何正确理解Java领域中的锁机制,我们一般需要掌握哪些理论知识?
  • Vue项目流程7,交易页面,提交订单,支付页面,利用element UI 以及 QRCode 完成微信支付,弹出框按钮的相关工作,个人中心以及子路由我的订单
  • 在Java中使用SFTP传输文件
  • OC5860降压芯片,MPS2459脚位一样,节省肖特基规格书
  • 哈工大李治军老师操作系统笔记【4】:系统调用的实现(Learning OS Concepts By Coding Them !)
  • 【光学】基于matlab色散曲线拟合【含Matlab源码 2053期】
  • (多级缓存)多级缓存
  • 复习三:线性表
  • C/C++语言100题练习计划 87——火柴棒等式(枚举实现)
  • 数仓架构演进
  • 约瑟夫问题对应算法的实现(思路分析) [Java][数据结构]
  • 深圳市第十二届职工技术创新运动会暨2022年深圳技能大赛—集成电路应用开发职业技能竞赛
  • 携职教育:对于想进入财务工作的人来说,第一个证考CPA还是CMA?
  • PostgreSQL 创建数据库、创建用户、赋予权限、创建表、主键总结
  • [deviceone开发]-do_Webview的基本示例
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • ES6简单总结(搭配简单的讲解和小案例)
  • express.js的介绍及使用
  • JavaScript 基础知识 - 入门篇(一)
  • Just for fun——迅速写完快速排序
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • SQLServer插入数据
  • 基于组件的设计工作流与界面抽象
  • 力扣(LeetCode)22
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 转载:[译] 内容加速黑科技趣谈
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • ​iOS安全加固方法及实现
  • ​人工智能书单(数学基础篇)
  • (solr系列:一)使用tomcat部署solr服务
  • (定时器/计数器)中断系统(详解与使用)
  • (二开)Flink 修改源码拓展 SQL 语法
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (转)菜鸟学数据库(三)——存储过程
  • (转载)Google Chrome调试JS
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET CF命令行调试器MDbg入门(一)
  • .NET Core 版本不支持的问题
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET/C# 使窗口永不获得焦点
  • .NET6 命令行启动及发布单个Exe文件
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • 。Net下Windows服务程序开发疑惑
  • @Autowired自动装配
  • @Documented注解的作用
  • []我的函数库
  • [ActionScript][AS3]小小笔记
  • [BZOJ4566][HAOI2016]找相同字符(SAM)