stm32定时器详解
# 简介
在控制,电子领域中,时常需要定时控制,延时控制或者对某件事进行计数,如洗衣机的定时洗衣等等定时控制,载入通过对外部的脉冲进行计数来测量速度等
# 资源介绍
STM32一共有三种定时器,总共有14个定时器。
高级定时器 TIM1、TIM8 。
通用定时器 TIM2、TIM5、TIM3、TIM4,TIM9~TIM14 , 其中2、5是32位定时器计数范围更大精度更高,3、4功能上与2、5一样都可以产生DMA请求。TIM9~TIM14相对上面两类通用定时器功能上要少一些。
基本定时器 TIM6、TIM7 没有捕获等通道所以相对以上两种定时器就比较基础一些
## 定时器功能特点描述
1.16位递增、递减、递增/递减自动重载计数器。
2.16 位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数 介于 1 到 65536 之间。
3.多达 4 个独立通道,可用于:输入捕获,输出比较,PWM 生成(边沿和中心对齐模式),单脉冲模式输出
4. 发生如下事件时生成中断/DMA 请求:
①更新:计数器上溢/下溢、计数器初始化(通过软件或内部/外部触发)
②触发事件:计数器启动、停止、初始化或通过内部/外部触发计数
③输入捕获
④输出比较
⑤断路输入
二.通用定时器:
●TIM2-TIM5
1.(TIM3,TIM4)16位或者(TIM2,TIM5)32位递增、递减和递增/递减自动重载计数器。
2.16 位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数介 于 1 到 65536 之间。
3.多达 4 个独立通道,可用于:输入捕获,输出比较,PWM 生成(边沿和中心对齐模式),单脉冲模式输出
4.发生如下事件时生成中断/DMA 请求:
①更新:计数器上溢/下溢、计数器初始化(通过软件或内部/外部触发)
②触发事件:计数器启动、停止、初始化或通过内部/外部触发计数
③输入捕获
④输出比较
●TIM9-TIM14
1.16 位自动重载递增计数器(属于中等容量器件)。
2.16 位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数 介于 1 和 65536 之间。
3.多达 2个独立通道,可用于:输入捕获,输出比较,PWM 生成(边沿和中心对齐模式),单脉冲模式输出
4.发生如下事件时生成中断/DMA 请求:
①更新:计数器上溢/下溢、计数器初始化(通过软件或内部/外部触发)
②触发事件:计数器启动、停止、初始化或通过内部/外部触发计数
③输入捕获
④输出比较
三.基本定时器:
1.16 位自动重载递增计数器
2.16 位可编程预分频器,用于对计数器时钟频率进行分频(即运行时修改),分频系数 介于 1 和 65536 之间
3.用于触发 DAC 的同步电路
4.发生如下更新事件时会生成中断/DMA 请求:计数器上溢
## 模式介绍
### 计数模式
1. 递增计数模式
在递增计数模式下,计数器从 0 计数到自动重载值,然后重新从 0 开始计数并生成计数器上溢事件。
2. 递减计数模式
在递减计数模式下,计数器从自动重载值开始递减计数到 0,然后重新从自动重载值开始计数并生成计数器下溢事件。
3.中心对齐模式(递增/递减计数)
在中心对齐模式下,计数器从 0 开始计数到自动重载值 — 1,生成计数器上溢事件;然后从自动重载值开始向下计数到 1 并生成计数器下溢事件。之后从0 开始重新计数。
文字叙述:上面首先是时钟来源,A,内部时钟(CK_INT),来源于APB1的倍频,B,外部时钟TIMx_ETR,C,定时器时钟的级联;然后经过使能,向上/向下计数方式,形成CK_PSC,再经过PSC预分频器分频形成CK_CNT,定时器计数时钟。1)对于定时器功能,对自动重装载寄存器设定初值,然后计数器CNT寄存器向上或者向下溢出后,产生更新中断时间。2)对于输入捕获,假设通道1,先进行输入滤波,以及边沿检测,然后输出到IC1,进行预分频,就是对来的脉冲多少个脉冲检测一次,一般是不分频,一次脉冲检测一次,当捕获到一个上升沿,可以记录下此时的定时器的值,也可以置零,然后下一次边沿到来,则记下此时的值,记一个脉冲,然后可以计算它的宽度,以及脉冲的个数。3)输出比较:预装载某值到输出比较寄存器当中,当计数器的值大于了该值得时候,输出假设高电平,小于该值得时候输出低电平,这样可以形成PWM波,用自动重装载寄存器的值作为整个周期,用比较寄存器的值作为脉冲宽度,从而可以通过调节周期(也可以叫频率),也可以调节脉宽。
以上框图大致分为4个部分:
时钟来源CK_PSC
可以由RCC的内部时钟分频得到
定时器的TIMx_ETR引脚得到
ITR0~4是由其他定时器通过TRGO输出,定时器级联得到
由定时器TIMx_Ch1等引脚外部产生TI1FP1、TI2FP2,产生
时基单元
3. 功能引脚输出
通过TIMx_CH1等引脚触发一定的功能
通道引脚
通过TIMx_CH1等引脚输出PWM波等等
### 定时器中断
常用库函数
注意在stm32f4系列中时钟频率默认是84MHZ即定时时间与分屏之应按照这个屏率计算
如定时1s 计数值10000 分频值 8400
void Time1_Init(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; /* 1. 使能时钟 */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); TIM_DeInit(TIM1); //TIME1与TIME8挂在在APB2总线上 //配置定时器数值,,分屏,,计数值 TIM_TimeBaseStructure.TIM_Period = (5000)-1;// 计数值0~9999 计数10000次为一秒 决定定时时间 PLL_M==8才行 TIM_TimeBaseStructure.TIM_Prescaler =16800-1;//预分频值 自加1 84MHZ频率 进行8400预分频 分频后为10000HZ //TIM_TimeBaseStructure.TIM_ClockDivision = 0;//f407不支持 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//计数模式///向上技术 TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); //配置定时器终端触发方式 //时间更新 TIM_ITConfig(TIM1,TIM_IT_Update, ENABLE); //配置定时器中断优先级 NVIC_InitStructure.NVIC_IRQChannel = TIM1_UP_TIM10_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); //使能定时器工作 TIM_Cmd(TIM1, ENABLE); } void TIM1_UP_TIM10_IRQHandler(void)//time1与time10共享中断函数 { if(SET==TIM_GetITStatus(TIM1,TIM_IT_Update)) { PFout(10)^=1; TIM_ClearITPendingBit(TIM1,TIM_IT_Update); } if(SET==TIM_GetITStatus(TIM10,TIM_IT_Update)) { PFout(10)^=1; TIM_ClearITPendingBit(TIM10,TIM_IT_Update); } }
版权声明:
作者: FreeClashNode
链接: https://www.freeclashnode.com/news/article-3357.htm
来源: www.freeclashnode.com
文章版权归作者所有,未经允许请勿转载。
热门文章
- 11月2日免费节点分享|22.5M/S,V2ray节点/Clash节点/SSR节点/Singbox节点|免费上网梯子每天更新
- 10月14日免费节点分享|22.5M/S,Clash节点/V2ray节点/Singbox节点/SSR节点|免费上网梯子每天更新
- 10月11日免费节点分享|18.6M/S,V2ray节点/Clash节点/SSR节点/Singbox节点|免费上网梯子每天更新
- 10月13日免费节点分享|22.1M/S,V2ray节点/Clash节点/Singbox节点/Shadowrocket节点|免费上网梯子每天更新
- 10月25日免费节点分享|18.1M/S,SSR节点/V2ray节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 10月9日免费节点分享|22.3M/S,Singbox节点/Clash节点/Shadowrocket节点/V2ray节点|免费上网梯子每天更新
- 10月12日免费节点分享|22.7M/S,Shadowrocket节点/V2ray节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 10月10日免费节点分享|18.3M/S,V2ray节点/Singbox节点/Clash节点/SSR节点|免费上网梯子每天更新
- 10月27日免费节点分享|20M/S,Shadowrocket节点/Singbox节点/V2ray节点/Clash节点|免费上网梯子每天更新
- 10月28日免费节点分享|22.8M/S,Singbox节点/SSR节点/V2ray节点/Clash节点|免费上网梯子每天更新
最新文章
- 当Vmess突然失效:一场技术与封锁的无声博弈
- 11月7日免费节点分享|22.9M/S,Shadowrocket节点/V2ray节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 梅林固件科学上网完全指南:从入门到精通,零成本解锁网络自由
- 11月6日免费节点分享|20.9M/S,Shadowrocket节点/V2ray节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 幸运破解器科学上网全解析:解锁数字世界的终极指南
- 11月5日免费节点分享|21.9M/S,Shadowrocket节点/Singbox节点/V2ray节点/Clash节点|免费上网梯子每天更新
- 11月4日免费节点分享|18M/S,Clash节点/Singbox节点/SSR节点/V2ray节点|免费上网梯子每天更新
- 穿越数字迷雾:深度解析V2Ray中转迟滞之谜与极速优化指南
- 跨越数字边界:科学上网的终极指南与深度思考
- 从连接到掌控:深入理解 Quantumult 的工作流程与网络管理哲学
- 11月2日免费节点分享|22.5M/S,V2ray节点/Clash节点/SSR节点/Singbox节点|免费上网梯子每天更新
- 深度解析《荒野冲突》:征服与策略的终极对决
- 11月1日免费节点分享|20.3M/S,V2ray节点/Shadowrocket节点/Clash节点/Singbox节点|免费上网梯子每天更新
- 斐讯路由器刷机配置v2ray全攻略:打造安全高效的翻墙网络环境
- 10月31日免费节点分享|18.7M/S,Shadowrocket节点/Clash节点/V2ray节点/Singbox节点|免费上网梯子每天更新
- 谷歌浏览器科学上网扩展全攻略:从入门到精通
- 10月30日免费节点分享|20.4M/S,V2ray节点/SSR节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 苹果手机V2Ray完全指南:从零开始打造安全上网环境
- 10月29日免费节点分享|21.6M/S,SSR节点/Clash节点/V2ray节点/Singbox节点|免费上网梯子每天更新
- 探索数字世界的门户:电脑科学上网贴吧完全指南
- 10月28日免费节点分享|22.8M/S,Singbox节点/SSR节点/V2ray节点/Clash节点|免费上网梯子每天更新
- 穿越数字边界:科学上网的全面指南与深度思考
- 10月27日免费节点分享|20M/S,Shadowrocket节点/Singbox节点/V2ray节点/Clash节点|免费上网梯子每天更新
- 数字世界的破壁之旅:科学上网全指南与实用工具深度解析
- 10月26日免费节点分享|21.5M/S,V2ray节点/SSR节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 跨越知识边界:浙大学子的全球学术网络探索指南
- 10月25日免费节点分享|18.1M/S,SSR节点/V2ray节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 10月24日免费节点分享|20.5M/S,V2ray节点/Clash节点/Singbox节点/Shadowrocket节点|免费上网梯子每天更新
- 刘大猫科学上网全攻略:解锁全球网络的终极指南
- 10月23日免费节点分享|22.2M/S,Shadowrocket节点/Clash节点/Singbox节点/V2ray节点|免费上网梯子每天更新
- 全面解析Quantumult安卓版:功能、安装与配置教程
- 双重防护,畅享无界:AdGuard联手V2RayNG,打造极致安全的上网体验
- 10月22日免费节点分享|18.8M/S,V2ray节点/SSR节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 掌握Clash白名单设置:精准控制代理流量的艺术
- 10月21日免费节点分享|22M/S,Clash节点/Singbox节点/V2ray节点/SSR节点|免费上网梯子每天更新
- 突破网络边界:技术科学上网的终极安全指南
- 10月20日免费节点分享|22.9M/S,SSR节点/V2ray节点/Clash节点/Singbox节点|免费上网梯子每天更新
- Shadowrocket 选购指南:从入门到精通,找到你的专属代理神器
- 10月19日免费节点分享|19.3M/S,Singbox节点/V2ray节点/Clash节点/Shadowrocket节点|免费上网梯子每天更新
- 深入解读:V2Ray为何比SSR更安全?一场网络隐私的全方位较量
- 10月18日免费节点分享|20.6M/S,V2ray节点/Clash节点/SSR节点/Singbox节点|免费上网梯子每天更新
- 深度指南:Shadowrocket从入门到精通——iOS用户的网络自由密钥
- 10月17日免费节点分享|18M/S,Clash节点/SSR节点/V2ray节点/Singbox节点|免费上网梯子每天更新
- 深入解析科学上网套:全方位使用指南与常见问题解答
- 10月16日免费节点分享|22M/S,Shadowrocket节点/V2ray节点/Singbox节点/Clash节点|免费上网梯子每天更新
- 10月15日免费节点分享|21.2M/S,Clash节点/SSR节点/V2ray节点/Singbox节点|免费上网梯子每天更新
- 全局掌控:安卓设备上 Clash 全局模式完整设置指南与深度解析
- 解锁全球游戏体验:育碧平台科学上网全攻略与深度解析
- 10月14日免费节点分享|22.5M/S,Clash节点/V2ray节点/Singbox节点/SSR节点|免费上网梯子每天更新
- 华为Mate 10科学上网全攻略:突破限制,畅游全球网络
归档
- 2026-11 13
- 2026-10 61
- 2026-09 58
- 2026-08 63
- 2026-07 61
- 2026-06 55
- 2026-05 56
- 2026-04 51
- 2026-03 60
- 2026-02 52
- 2026-01 56
- 2025-12 59
- 2025-11 55
- 2025-10 56
- 2025-09 55
- 2025-08 49
- 2025-07 31
- 2025-06 30
- 2025-05 31
- 2025-04 30
- 2025-03 388
- 2025-02 360
- 2025-01 403
- 2024-12 403
- 2024-11 390
- 2024-10 403
- 2024-09 388
- 2024-08 402
- 2024-07 427
- 2024-06 442
- 2024-05 181
- 2024-04 33
- 2024-03 31
- 2024-02 29
- 2024-01 51
- 2023-12 52
- 2023-11 32
- 2023-10 32
- 2023-09 3