STM32定时器分为三种定时器
高级定时器 TIM1和TIM8
通用定时器 TIM2、TIM3、TIM4、TIM5
基本定时器 TIM6、TIM7
三种定时器都是16位的自动装载计数器组成,由一个可编程的预分频器驱动。
1、测量输入信号的脉冲宽度(输入捕获) 2、输出波形(输出比较、PWM、嵌入死区时间的互补PWM等)。 3、使用定时器预分频器和RCC时钟控制预分频器,可以实现脉冲宽度和波形周期的调节。 4、高级控制定时器(TIM1和TIM8)和通用定时器(TIMx)是完全独立的,不共享任何资源。
─ 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) ─ 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) ─ 输入捕获 ─ 输出比较 ─ 刹车信号输入
上图中,对应了四种独立通道。(左下) 输入、(右下)输出
时基单元
● 计数器寄存器(TIMx_CNT) CNT负责计数,到达设定值产生一个溢出标志位 ● 预分频器寄存器 (TIMx_PSC) 对进来的频率进行分类,然后给CNT计数器 ● 自动装载寄存器 (TIMx_ARR) 当CNT达到设定值,从新开始 ● 重复次数寄存器 (TIMx_RCR) 记录溢出的次数(产生PWM有用) 计数器模式 1、中央对齐模式(向上/向下模式) 2、向上计数模式 3、向下计数模式定时器可以由下面四种时钟源进行提供:(TIMx_SMCR = xxx)
1、内部时钟(CK-INT) (TIMx_SMCR = 000) 内部时钟
2、外部时钟模式1,外部输入引脚 (TIMx_SMCR = 111) 进行输入端的计数(上或下)
3、外部时钟模式2,外部触发输入ETR 计数器在外部触发ETR的计数(上升或下降沿)
4、内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器
每一个捕获/比较通道都是围绕着一个捕获/比较寄存器(包含影子寄存器)。 捕获/比较模块由一个预装载寄存器和一个影子寄存器组成。读写过程仅操作预装载寄存器。
- 在捕获模式下,捕获发生在影子寄存器上,然后再复制到预装载寄存器中。
- 在比较模式下,预装载寄存器的内容被复制到影子寄存器中,然后影子寄存器的内容和计数器 进行比较。
脉冲宽度调制模式可以产生一个由TIMx_ARR寄存器来确定频率,由TIMx_CCRx寄存器确定占空 比的信号。
● 进入中央对齐模式时,使用当前的向上/向下计数配置;这就意味着计数器向上还是向下计 数取决于TIMx_CR1寄存器中DIR位的当前值。此外,软件不能同时修改DIR和CMS位。 ● 不推荐当运行在中央对齐模式时改写计数器,因为这会产生不可预知的结果。
TIM1和TIM8相关寄存器
控制寄存器 1(TIMx_CR1)
控制寄存器 2(TIMx_CR2)
从模式控制寄存器(TIMx_SMCR)
DMA/中断使能寄存器(TIMx_DIER)
状态寄存器(TIMx_SR)
事件产生寄存器(TIMx_EGR)
捕获/比较模式寄存器 1(TIMx_CCMR1)
捕获/比较模式寄存器 2(TIMx_CCMR2)
捕获/比较使能寄存器(TIMx_CCER)
捕获/比较寄存器 1(TIMx_CCR1)
捕获/比较寄存器 2(TIMx_CCR2)
捕获/比较寄存器 3(TIMx_CCR3)
捕获/比较寄存器(TIMx_CCR4)计数器(TIMx_CNT)
预分频器(TIMx_PSC)
自动重装载寄存器(TIMx_ARR)
重复计数寄存器(TIMx_RCR)
刹车和死区寄存器(TIMx_BDTR)
DMA控制寄存器(TIMx_DCR)
连续模式的DMA地址(TIMx_DMAR)
─ 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) ─ 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) ─ 输入捕获 ─ 输出比较
时基单元
● 计数器寄存器(TIMx_CNT) CNT负责计数,到达设定值产生一个溢出标志位 ● 预分频器寄存器 (TIMx_PSC) 对进来的频率进行分类,然后给CNT计数器 ● 自动装载寄存器 (TIMx_ARR) 当CNT达到设定值,从新开始通用定时器拥有的功能都是高级定时器拥有的功能,只是缺少了重复计数寄存器
基本定时器框图
1、计数模式只有计数功能(每次溢出产生溢出事件),无其他功能。
2、计数器的时钟由内部时钟(CK_INT)提供,无其他时钟输入。
基本定时器的寄存器很少
TIM6 和TIM7 控制寄存器 1(TIMx_CR1)
TIM6 和TIM7 控制寄存器 2(TIMx_CR2)
TIM6 和TIM7 DMA/中断使能寄存器(TIMx_DIER)
TIM6 和TIM7 状态寄存器(TIMx_SR)
TIM6 和TIM7 事件产生寄存器(TIMx_EGR)
TIM6 和TIM7 计数器(TIMx_CNT)
TIM6 和TIM7 预分频器(TIMx_PSC)
TIM6 和TIM7 自动重装载寄存器(TIMx_ARR)
在这里只是对STM32定时器的理论知识进行了一些学习,但还没有进行应用,以后应用在加在这上面。
上一篇:Springboot 使用装饰器模式,快看,它装起来了
下一篇:计算机网络习题答案