(STM32基础)TIM定时中断笔记

 

 

 C8T6只有四个定时器(T1-T4),一个高级,三个通用。定时器向下兼容,高级含有通用所有功能,通用含有基本所有功能。

基本定时器:

结构:基准时钟(和系统主频相同)→预分频器→计数器 ,构成时基单元,每来一个上升沿,计数器+1

自动重装载值写入的是计数目标(51单片机自动重装值写入的是溢出后的起始值),每次计数器自增后会自动与自动重装载寄存器比较,加到自动重装载值后计数器清零,产生一个“更新中断或更新事件”到NVIC;也可以设置只产生“更新事件”,不产生中断,触发内部其他电路工作。

计数模式:向上计数(到重装值清零,重新计数)

主从触发模式:

让内部硬件不受程序控制自动运行。避免一直中断主程序,可以极大减轻CPU负担。

主模式:更新事件通过主模式映射到TRGO(Trigge Out),直接触发需要使用的电路,例如DAC

通用定时器:

计数模式:向上计数,向下计数(从重装值开始自减,减到0触发中断,同时回到重装值再次自减),中央对齐计数(从0开始自增到重装值,申请中断,同时从重装值自减到0,再次申请中断,在0和重装值中间震荡)。

 内外时钟源选择和主从触发模式结构

 外部时钟模式2

外部时钟模式1:

 1、输入:ETR、ITR(内部时钟级联可以使用此接口)

2、 TI1F_ED连接的是输入捕获单元,从CH1引脚获得时钟,这一路输入的时钟上升沿和下降沿均有效。

3、TI1FP1、TI2FP2是CH1、CH2的输入时钟。

总结:外部输入模式1的输入可以是ETR、ITR(其他定时器时钟)、CH1引脚边沿、CH1引脚、CH2引脚

主模式输出

输出比较电路

输入捕获电路

 捕获比较寄存器

 高级定时器

定时中断结构框图:

 1、产生中断时,会先在状态寄存器中置一个中断标志位,通过中断输出控制(中断输出控制是中断的允许位,允许中断则开启,不允许中断则关闭),到NVIC申请中断。

2、预装时序:ARPE=1 启动预装时序,预装时序可以理解成自动重装载寄存器的影子寄存器,生效的是影子寄存器。当启动预装时序时,计数中途更改自动重装载寄存器的值,不会立即生效,会在产生更新中断或者更新事件时才会生效。当不启动预装时序时,计数中途更改自动重装载寄存器的值会立即生效,如果计数器当前值 未超过 自动重装载寄存器值,则计数到自动重装载寄存器值时,自动中断,如果计数器当前值 超过 自动重装载寄存器值,则计数到FFFF计数器归0后重新计数才会生效自动重装载寄存器值。

分频器也有类似的影子寄存器,功能类似,起缓冲作用,避免误更改导致的运行异常。

 RCC时钟树

1、RCC时钟树,在systemInit函数内,已经由函数库配置好了,竖线左边是时钟产生的电路,右边是时钟的使用电路。

2、四个震荡源:内部8MHz高速RC振荡器,外部4-16MHz高速石英晶体振荡器,外部32.768KHz低速晶振(给RTC提供时钟),内部40KHz低速RC振荡器(给看门狗提供时钟)。

两个高速晶振提供系统时钟(AHB APB1 APB2),系统刚启动会默认选择8MHz内部RC振荡器提供时钟,外部高速晶振一般是8MHz,通过PLL锁相环倍频后成为72MHz频率替换默认的8MHz的RC振荡器,继续给系统提供时钟。

CSS是时钟安全控制系统,一旦外部高速时钟失效,会通过CSS切换回内部时钟。保证系统正常运行,防止程序卡死。

3、所有 定时器的时钟都是72MHz。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值