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

MCU中的定时器

第一章 定时器的应用场景

第二章 定时器的原理

2.1 定时器的计数原理

 

1. 定时器的本质是一个计数器;

2. 计数器是对输入的系统频率信号进行计数;

3. 每来一个周期的信号,计数器的cnt 加一。如果周期T表示为1s,来三个周期就表示3s时间到达;如果系统时钟频率是120MHz,那么周期为T = (1/120)us,记录120次,t = 120 * T us = 1us时间到;

2.2 定时器的计数上限

2.3 定时器的预分频器

假定预分频器的值设置为120,总线给定时器的时钟频率为120MHZ;

在定时器的预分频器(Prescaler)设置为 120 的情况下,输入时钟频率为 120 MHz 时,预分频器会对输入的时钟信号进行分频。具体分频过程如下:

  1. 预分频器的功能:它的作用是将高频的输入时钟信号降低到适合计数器工作的频率。
  2. 预分频器设置为 120:意味着预分频器需要 120 个输入脉冲 才会输出 1 个脉冲
  3. 输出到计数器的频率:输入时钟频率为 120 MHz,经过预分频器分频后,输出频率为: 

f = 120MHz / 120 = 1 MHz

因此,输入到预分频器的 120 个脉冲,会转换成输出的 1 个脉冲,然后这个脉冲才会送到定时器的计数器。

总结:

  • 预分频器 将输入的 120 MHz 时钟分频为 1 MHz。
  • 计数器 以 1 MHz 的频率进行计数。

那么输入120个脉冲到预分频器后,才产生1个脉冲给计数器

2.4 定时器的硬件结构

2.5 定时器的时钟树

2.6 通用定时器和高级定时器

  1. 最直观的区别是通道个数;

第三章 定时器输出PWM

3.1 应用举例

3.2 定时器输出PWM控制LED

注意:

  1. PF9口本来是一个普通的GPIO口,现在需要配置为定时器14的通道1,所以需要将IO口设置为复用功能;
  2. 配置定时器14输出100HZ的频率(周期为10ms),


http://www.kler.cn/a/398693.html

相关文章:

  • Go 语言切片初始化与性能优化:使用 cap 参数的重要性
  • 有序数组的平方(leetcode 977)
  • Spring 中的 BeanDefinitionParserDelegate 和 NamespaceHandler
  • onlyoffice Command service(命令服务)使用示例
  • Python毕业设计选题:基于django+vue的二手物品交易系统
  • npm install命令报错:npm ERR Could not resolve dependency npm ERR peer…
  • MySQL数据库2——SQL语句
  • 化工防爆巡检机器人:在挑战中成长,为化工安全保驾护航
  • [AI] 从“进取号”到现代 NLP:机器语言理解的挑战与未来
  • HTTP/2新型DDoS攻击:技术深度剖析与防御指南
  • Python | Leetcode Python题解之第564题寻找最近的回文数
  • 腾讯云内容合规基于springboot架构设计
  • 如何给openshift 单节点集群配置hugepage
  • 基于Java Springboot电商个性化推荐系统
  • c++数字雨实现
  • ubuntu 安装protobuf 3.4.0
  • C语言第十一周课——函数的调用
  • 网络层9——虚拟专用网VPN和网络地址转换NAT
  • 多目标优化算法:多目标红嘴蓝鹊优化算法(MORBMO)求解UF1-UF10,提供完整MATLAB代码
  • 开源,一天200star,解锁视频字幕生成新方式——一款轻量级开源字幕工具,免费,支持花字,剪映最新会员模式吃相太难看了
  • 配置LVGL的WIN下vscode的仿真demo
  • (动画版)排序算法 -希尔排序
  • ubuntu-server-22.04上手指南
  • 前端—Cursor编辑器
  • 【Android compose原创组件】在Compose里面实现内容不满一屏也可以触发边界阻尼效果的一种可用方法
  • Python中的with语句