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

通用定时器Timer的基本模式

特点:多通道,一般有四个

16位或者32位的计数器(CNT)

多种时钟源(内部APB,外部时钟其他定时器)

多种功能模式:基本定时,中断输入捕获,PWM等

基本结构

APB总线  PSC预分配器 CNT  CCR

1.基本定时模式

时钟源:

APB总线时钟按照(PSC预分配)(84-1才设置成84)设定频率计数,CNT增减当计数器达到预设的自动重装载值(ARR)时,产生更新时间(UEV),可以触发中断

应用:

产生精确的时间基准,周期性中断保证控制周期

2.编码器接口模式

时钟源:

引脚输入脉冲

ARR设置成最大值,CNT参与计数,CCR不参与

功能:

解码增量式编码器的A/B相信号计数器根据编码器的旋转方向递增或者递减

(正交编码器)两个相差90°控制正负旋转

应用:位置检测,速度测量等主要用于电机闭环控制

3.PWM模式

时钟源:

APB总线时钟

CNT在0至ARR,ARR决定周期频率,CCR决定占空比

功能:

通过设置自动重装载(ARR),,确定PWM周期,设置比较值(CCR)确定占空比。当计数器(CNT)在周期内达到CCR的值时,改变输出引脚的状态,产生PWM波形 

4.输入捕获模式

时钟源:

APB总线时钟

CNT随着时钟计数,ARR最大值,CCR输入触发,保存CNT 的值

功能:

定时器捕获外部信号到达的时间,及当输入信号的沿到来时候将当前计数器的值保存到CCR中

一个定时器只有一个CNT,

但是有4个 ccr实体1个arr

四个pwm波的占空比可以不同,但是频率一定相同

常用API

 PWM模式
1.  HAL_TIM_PWM_Init(TIM_HandleTypeDef *htim)  //初始化
2.  HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel)  //启动功能
3.  HAL_TIM_PWM_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)   //停止功能
4.  __HAL_TIM_SET_COMPARE(__HANDLE__, __CHANNEL__, __COMPARE__)  //设置CCR
5.  __HAL_TIM_SET_AUTORELOAD(__HANDLE__, __AUTORELOAD__)  //设置ARR

定时中断模式

1.  HAL_TIM_Base_Init(TIM_HandleTypeDef *htim) //初始化
2.  HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim)  //启动功能
3.  HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim)  //停止功能
4.  __HAL_TIM_SET_AUTORELOAD(__HANDLE__, __AUTORELOAD__)  //ARR
5.  __HAL_TIM_SET_COUNTER(__HANDLE__, __COUNTER__)   //得到cnt
6.  __HAL_TIM_GET_COUNTER(__HANDLE__)     //看门狗
7.  HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)   //中断处理

http://www.xdnf.cn/news/16596.html

相关文章:

  • 元码智能“大眼睛”机器人首发,智启生活新纪元!
  • 数据库初阶笔记
  • 招工招聘小程序系统开发——打造一站式招聘服务平台
  • 【MySQL】MySQL索引—B树/B+树
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博内容IP地图可视化分析实现
  • 测试工作中一些有用的链接
  • string类的模拟实现
  • 标准七层网络协议和TCP/IP四层协议的区别
  • TP-Link Archer C50路由器曝安全漏洞,硬编码DES密钥可解密敏感配置
  • JavaScript语法、关键字和变量
  • 外网访问文档编辑器Docsify(Windows版本),内网穿透技术应用简便方法
  • AD里面出现元器件PCB封装不能编辑的情况
  • 湖北大学暑期实训优秀作品:面向美丽中国的数据化可视平台
  • Ubuntu LNMP
  • 《安富莱嵌入式周报》第356期:H7-TOOL的250M示波器模组批量生产中,自主开发QDD执行器,开源14bit任意波形发生器(2025-07-28)
  • 【Linux】重生之从零开始学习运维之Mysql事务
  • Kubernetes自动扩容方案
  • 【C语言进阶】题目练习
  • 《 java 随想录》| LeetCode链表高频考题
  • Linux文件归档和备份
  • 云原生MySQL Operator开发实战(五):扩展与生态系统集成
  • 基于Matlab图像处理的静态雨滴去除与质量评估系统
  • windows下Docker安装路径、存储路径修改
  • Docker初学者需要了解的几个知识点(三):Docker引擎与Docker Desktop
  • 实时行情接口使用教程
  • deepseek+飞书多维表格 打造小红书矩阵
  • python优秀案例:基于机器学习算法的景区旅游评论数据分析与可视化系统,技术使用django+lstm算法+朴素贝叶斯算法+echarts可视化
  • 移动端 WebView 调试实战,多平台行为差异排查与统一调试流程
  • zoho crm为什么xx是deal的关联对象但是调用函数时报错说不是关联对象
  • p5.js 三角形triangle的用法