STM32__TIM

PART A 定时基本定时功能

一TIM简介

b981ab1a7d024524a23380ba3767f9a7.png

二,定时器类型  只存在TIM1,2,3,4这四个寄存器         

a24e33ef515f417c8f4e860f7843b629.png

三基本定时器(支持向上计数模式)

        1,时基单位

        2,预分频器PSC

               写0:不分频(1分频):输出频率=输入频率=72MHz

               写1:2分频:输出频率=输入频率/2=36MHz

                 写2:3分频:输出频率=输入频率/3=18MHz

                      ················

                  预分频器的值和实际分频系数相差1,即实际分频系数=预分频器的值+1

               改分频器是16位最大值可写65535,即65536分频

 

        3,计数器:对预分频后计数时钟进行计数

        4,自动重装寄存器:存写入的计数目标

             运行过程中,计数值不断自增,自动重装值是固定的目标

             计数值等于自动重装值时,计数时间到了,就会产生一个中断信号,并且清零计数器

              计数器自动开始下一次的计数计时

        5,更新中断:向上箭头,表示产生中断信号,这种计数值等于自动重装值产生的中断

             更新事件:向下箭头,更新事件不会触发中断,但可以触发内部其他电路的工作

        6,定时器中断流程:基准时钟->预分频器->计数器->

              计数器计数自增,同时不断与自动重传寄存器比较->

              值相等时,即计时时间到->产生一个更新中断和更新事件->

               CPU响应更新中断

          7,主从触发模式:能让内部的硬件在不受程序的控制下实现自动运行     

               主模式作用: 需要把更新事件通过主模式映射到TRGO,然后TRGO就会直接去触发DAC     

4c629b519f894e8d97bb27a97e7b7dec.png

四,通用定时器【支持向上计数模式,

                             向下计数模式(从重装值开始,向下自减,减到0后回到重装值同时申请中断)

                             中央对齐模式(从0 开始,先向上自增,记到重装值,申请中断,

                                                       再向下自减到0,再申请中断 )】

        1,时基单位

        2,内外时钟源选择:可以选择内部72MHz和外部时钟(TIMx_ETR引脚上外部时钟)

        3,外部时钟模式2

        4,当TRGI当做外部时钟来使用的时候,这一路就叫做“外部时钟模式1”

        5,实现定时器级联:初始化TIM3,使用主模式把更新事件映射到TRGO上

        再初始化TIM2,选择ITR2,对应TIM3的TRGO

e692c0143b5741579eb640fb7b9deb4d.png

五,定时中断基本结构

e54ffde691514ad38bf3f593b51575fa.png

六,预分频器时序

        1,CK_PSC  预分频器的输入时钟

        2,CNT_EN 计数器使能,高电平计数器正常运行,低电平计数器停止

        3,CK_CNT 计数器时钟,即是预分频器的时钟输出,也是计数器的时钟输入

        4,计数器寄存器数值跟随上升沿自增,可得ARR自动重装值就是FC,

              当计数值计到和重装值相等。并旦下一个时钟来临时,计数值才清零

              同时下面产生一个更新事件

        5,预分频寄存器的缓冲,下三行(这里没捋懂)

c2f119d78c714ad4b38cb5ddd244f13a.png

七,计数器时序

        1,CK_INT 内部时钟72MHz

        2,时钟使能,高点频启动,

        3,计数器时钟,因为分频系数为2,所以这个频率是上面(CNT)的/2

        4,计数器在每个上升沿自增,到0036时,发生溢出,计到36后再来一个上升沿,计数器清零

                计数器溢出,产生一个更新事件脉冲。并会置一个更新中断标志位UIF,UIF置1,

                就会 申请中断,中断响应后要手动清零

        5,计数器有预装时序,有缓冲寄存器

                计数器无预装时序,无缓冲寄存器

4ee7d32932b54271ac83eca362d6e209.png八,定时器定时中断

        1,因为定时器不涉及外部硬件,所以放system里

        2,根据定时中断基本结构,初始化配置定时器

                2.1  RCC开启时钟

                2.2   选择时基单元时钟源(对于定时中断,我们选择内部时钟)

                2.3  配置时基单元(预分频器,自动重装器,计数模式)

                2.4  配置输出中断控制,允许更新中断到NVIC

                2.5  配置NVIC,在NVIC中打开定时器中断的通道,并分配一个优先级

                2.6 运行控制

                2.7配置完要使能定时器,才可使用

                2.8 最后写一个中断函数

        3,介绍库函数

                TIM_DeInit   恢复缺省配置(默认模式)

                TIM_TimeBaseInit  时基单元初始化,

                            配置时基单元【参数1:TIMx选择某个定时器,

                        参数2:TIM_TimeBaseInitStruct    结构体(包含配置时基单元的参数)】

                TIM_TimeBaseStructInit   可以把结构体变量赋一个默认值

                TIM_Cmd   使能计数器(对应定时中断基本结构中的运行控制

                                (参数1:TIMx选择定时器,参数2:NewState使能还是失能)

                TIM_ITConfig  使能中断输出信号(对应定时中断基本结构中的中断输出控制)

                                      (参数1:TIMx选择定时器,参数2:TIM_IT 选择配置哪个中断输出,参数3:NewState使能还是失能)

                时钟源选择

                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值