2021-04-21 通用定时器第二节(定时器中断实验)

定时器中断实验

一. 通用定时器的回顾

二. 常用寄存器和库函数配置

三. 编写定时器中断实验

1.1 内部时钟选择

在这里插入图片描述
内部时钟来源由AHB经过APB1的预分频产生时钟供定时器来用即产生内部时钟
在这里插入图片描述
除非APB1的分频系数是1,否则通用定时器的时钟等于APB1时钟的2倍。
默认调用SystemInit函数情况下:
SYSCLK = 72M
AHB时钟=72M
APB1时钟=36M
所以APB1的分频系数=AHB/APB1时钟=2
所以,通用定时器时钟CK_INT = 2*36M = 72M

1.2 计数器模式

向上计数模式(时钟分频因子=1)
在这里插入图片描述
首先使能定时器,由图看出自动重装载的值为36,当计数器寄存器读取到36时,会产生溢出事件,同时产生更新事件和更新中断标志。

2.1 定时器常用寄存器

1. 计数器当前值寄存器CNT

在这里插入图片描述
16位

2. 预分频寄存器TIMx_PSC

在这里插入图片描述

3. 自动重装载寄存器TIMx_ARR

在这里插入图片描述

4. 控制寄存器TIMx_CR1

在这里插入图片描述
主要用到位4和位0,位4控制方向;位0控制使能。

5. DMA中断使能寄存器TIMx_DIER

在这里插入图片描述

2.2 常用库函数

定时器参数初始化

  void TIM_TimeBaseInit(TIM_TypeDef* TIMx,TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);
   typedef struct
                  {
   
                     uint16_t TIM_Prescaler;        
                     uint16_t TIM_CounterMode;     
                     uint16_t TIM_Period;        
                     uint16_t TIM_ClockDivision;  
                     uint8_t TIM_RepetitionCounter;
                  } TIM_TimeBaseInitTypeDef;


             TIM_TimeBaseStructure.TIM_Period = 4999
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值