IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32定时器学习 -> 正文阅读

[嵌入式]STM32定时器学习

1 定时器时钟

在这里插入图片描述

  1. 计数器是从CK_PSC分频器分频后得到CK_CNT,计数器 COUNTER 根据 CK_CNT 频率向上计数;

  2. ARPE 位置 1,影子寄存器有效,就是影子寄存器的使能端,只有在事件更新时才把 TIMx_ARR 值赋给影子寄存器

  3. 基本定时器的数据结构
    在这里插入图片描述

  4. RepetitionCounter:重复计数器,属于高级控制寄存器专用寄存器位,利用它可以非常容易控制输出 PWM 的个数。

  5. 定时器的中断配置在这里插入图片描述

高级定时器

高级控制定时器比通用定时器增加了可编程死区互补输出、重复计数器、带刹车 (断路) 功能,这些功能都是针对工业电机控制方面。

高级控制定时器有四个时钟源可选

? 内部时钟源 CK_INT
? 外部时钟模式 1:外部输入引脚 TIx(x=1,2,3,4)
? 外部时钟模式 2:外部触发输入 ETR
? 内部触发输入
在这里插入图片描述
在这里插入图片描述

  • 内部触发输入是使用一个定时器作为另一个定时器的预分频器。硬件上高级控制定时器和通用定时器在内部连接在一起,可以实现定时器同步或级联。主模式的定时器可以对从模式定时器执行复位、启动、停止或提供时钟。高级控制定时器和部分通用定时器 (TIM2 至 TIM5) 可以设置为主模式或从模式,TIM9 和 TIM10 可设置为从模式。
    在这里插入图片描述
    高级控制定时器控制器部分包括
  • 触发控制器、
  • 从模式控制器
  • 编码器接口。
  1. 触发控制器用来针对片内外设输出触发信号,比如为其它定时器提供时钟和触发 DAC/ADC 转换
  2. 编码器接口专门针对编码器计数而设计
  3. 从模式控制器可以控制计数器复位、启动、递增/递减、计数。

时基单元

  1. PSC
  2. CNT
  3. ARR 自动重载寄存器
  4. REP 重复计数器寄存器 8 位有效
  • 如果 ARPE 位置 1,自动重载影子寄存器有效,只有在事件更新时才把 TIMx_ARR 值赋给影子寄存器。如果 ARPE 位为 0,则修改 TIMx_ARR 值马上有效。

三种计数模式

  • 递增计数模式
  • 递减计数模式
  • 递增/递减 (中心对齐) 计数模式

输出比较模式

在这里插入图片描述

死区时间的大小具体由 BDTR 寄存器的位 DTG[7:0] 配置

比较输出初始化结构体

typedef struct { 
	uint32_t OCMode; // 比较输出模式
	uint32_t Pulse; // 脉冲宽度
	uint32_t OCPolarity; // 输出极性
	uint32_t OCNPolarity; // 互补输出极性
	uint32_t OCFastMode; // 比较输出模式快速使能
	uint32_t OCIdleState; // 空闲状态下比较输出状态
	uint32_t OCNIdleState; // 空闲状态下比较互补输出状态
}TIM_OCInitTypeDef;

断路和死区初始化结构体

 typedef struct {
	uint32_t OffStateRunMode; // 运行模式下的关闭状态选择
	uint32_t OffStateIDLEMode; // 空闲模式下的关闭状态选择
	uint32_t LockLevel; // 锁定配置
	uint32_t DeadTime; // 死区时间
	uint32_t BreakState; // 断路输入使能控制
	uint32_t BreakPolarity; // 断路输入极性
	uint32_t BreakFilter; // 断路输入滤波器
	uint32_t Break2State; // 断路 2 输入使能控制
	uint32_t Break2Polarity; // 断路 2 输入极性
	uint32_t Break2Filter; // 断路 2 输入滤波器
	uint32_t AutomaticOutput; // 自动输出使能
} TIM_BreakDeadTimeConfigTypeDef;

编码器使用

相关结构体

包含2个输入通道的使用

typedef struct
{
	uint32_t EncoderMode; //编码器模式 2倍频 或 4倍频
	uint32_t IC1Polarity; //输入信号极性
	uint32_t IC1Selection; //输入通道 员只能设置为 TIM_ICSELECTION_DIRECTTI
	uint32_t IC1Prescaler; //输入捕获预分频器
	uint32_t IC1Filter; //输入捕获滤波器
	uint32_t IC2Polarity; //输入信号极性
	uint32_t IC2Selection; //输入通道 员只能设置为 TIM_ICSELECTION_DIRECTTI
	uint32_t IC2Prescaler; //输入捕获预分频器
	uint32_t IC2Filter; //输入捕获滤波器
}TIM_Encoder_InitTypeDef;
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章           查看所有文章
加:2022-03-30 18:41:35  更:2022-03-30 18:45:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:49:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码