目录
一,STM32定时/计数器概述
1.1STM32定时器分类
1.2 STM32基本,通用,高级定时器的功能整体区别
1.3软件定时与定时器定时的原理
二,基本定时器
-
基本定时器简介
-
基本定时器框图
-
定时器中断实验相关寄存器
一,STM32定时/计数器概述
1.1STM32定时器分类
STM32f1共有8个定时器。
2个基本定时器:用于产生简单的延时【TMI6,TMI7】
4个通用定时器:用于复杂的定时任务,有多种工作模式和功能【TMI2~TMI5】
2个高级定时器:用于高性能和高准确度的定时任务【TMI1,TMI8】
定时器性能:高级>通用>基本
1.2 STM32基本,通用,高级定时器的功能整体区别
定时器类型 | 主要功能 |
---|---|
基本定时器 | 没有输入输出通道,常用作时基,即定时功能 |
通用定时器 | 具有多路独立通道,可用于输入捕获/输出比较,也可用作时基 |
高级定时器 | 除具备通用定时器所有功能外还具备死区控制的互补信号输出 |
1.3软件定时与定时器定时的原理
软件定时的原理是:利用CPU执行特定的指令序列来实现延时功能,即通过循环等待的方式来达到延时的效果,软件定时的实现步骤:
- 确定延时时间
- 编写延时函数
- 实现延时逻辑
- 调用延时函数
软件定时的缺点:
- 延时不精确收到cpu执行命令的速度等因素造成延时不精确的情况
- 在延时期间CPU一直处于空循坏或计数循坏导致cpu一直处于等待状态不能执行其它的任务
定时器定时的原理:利用硬件定时器模块中的计数器和自动重载寄存器来实现精确的定时功能。
定时器定时的实现步骤:
- 时钟源选择:可以是微控制器的系统时钟或者外部时钟源
- 预分屏器设置:调节定时器的计数频率
- 计数器计数:计数器从0开始计数直到达到自动重载值为止
- 溢出检测:计数器达到自动重载值后会触发溢出事件,计数器从新计数并发出溢出信号
- 重新加载:收到溢出信号后自动重载寄存器的值会重新加载到计数器中,实现周期性的定时
二,基本定时器
2.1基本定时器简介——TMI6/TMI7
基本定时器(TMI6/TMI7)是STM32中的两个简单的定时器
主要特性:
- 16位递增计数器:可以计数0~65535的整数,溢出时会重新计数
- 16位预分屏器:分频系数范围从1~65536,用于调节定时器的时钟频率
- 可用于触发DAC:可以利用计数器溢出来触发DAC实现定时产生模拟输出信号
- 中断/DMA请求:计数器溢出时会产生中断或DMA请求,用户可以在中断服务函数中执行x
2.2基本定时器框图
2.3 定时器中断实验相关寄存器
TIM6和TIM7控制器1(TIMx_CR1)
TIM6和TIM7 DMA/中断使能寄存器(TIMx_DIER)
TIM6和TIM7 状态寄存器(TIMx_SR)
TIM6和TIM7 计数器(TIMx_CNT)
TIM6和TIM7 预分频器(TIMx_PSC)
TIM6和TIM7 自动重载寄存器(TIMx_ARR)