江科大自化协TIM定时器部分笔记(1)

1、本质上,定时器是一个计数器。

三种定时器的英文需要记一下。(一般常用的就是TIM1~8)。

蓝色框部分:功能是向下兼容的。

对于C8T6而言,内部拥有TIM1、TIM2、TIM3、TIM4

2、理解定时器的内部结构(以基本定时器为例)\原理

  1. 主频顺着红色箭头传到预分频器,设预分频器是n位的,则可以对主频进行2^n分频。

f^\prime对应的方波,成为计数器计数的时间间隔。当没有上限时,自动记录65536个脉冲后清零。

“自动重装载寄存器”提供计数上限。当数值=该上限时,(1)计数器清零;(2)产生更新中断经NVIC传给CPU,进而得到CPU的响应;(3)产生更新事件,触发内部其他电路的工作。(如上图所示)

实操部分

1、复制OLED文件,修改成如下内容:

2、定时器初始化分为几步:(结合下图,从左到右看)

(1)RCC开时钟:定时器的基准时钟和整个外设的时钟(如下图红圈部分)【APB1】

(2)选择时基单元的时钟源。本实验是定时中断,选择内部时钟模式即可【对应1073行】。

(3)配置时基单元,包括紫色框中的预分频器、计数器、自动重装器等(注1:它们3个的工作原理,上面已经讲过了)

(注2:用一个结构体即可配好这些参数)【用1055行的TimeBaseInit函数】

(4)配置中断输出控制,允许更新中断输出到NVIC。(也就是下图中从右往左倒数第二个方框)。

【用1069行的TIM_ITConfig函数】

(5)配置NVIC,在其中打开定时器中断的通道,并分配一个优先级。(这和之前外部中断基本一致)

(6)运行控制

在上述模块配置完后,还要使能计数器,否则不会计数。

在计数器正常工作时,如果到了天花板,则出发中断,调用中断函数。我们把显示屏自增的功能写在中断函数里,这样就可以时不时自增了(调用中断函数)。

3、上述初始化步骤,用到的库函数:视频13,10:21处

(1)下图中蓝色部分(时钟源选择),有6个函数,分别确定不同的工作模式(左边选哪个通道,穿过黄色部分)

(2)紫色的时基单元,用1055行的TimeBaseInit函数

(3)中断输出控制,用1069行的TIM_ITConfig函数

(4)NVIC,用之前讲外部中断见过的NVIC_Init函数(在杂项文件里找)

(5)运行控制(宏观调控时钟工作状态的),用1067行的TIM_Cmd函数

 此外,还有一些个性化功能,对应的函数也在其中,这里就不列举了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值