你的位置:首页 > 软件开发 > 操作系统 > stm32寄存器版学习笔记04 定时计数器中断

stm32寄存器版学习笔记04 定时计数器中断

发布时间:2016-06-29 00:00:09
STM32共有8个定时计数器,其中TIME1和TIME8是高级定时器,TIME2~TIME5是通用定时器,TIME6和TIME7是基本定时器。以TIME3为例总结定时计数器的基本用法。1.TIM3的配置步骤①TIM3时钟使能  APB1外设复位寄存器 (RCC_APB1RSTR) ...

stm32寄存器版学习笔记04 定时计数器中断

  STM32共有8个定时计数器,其中TIME1和TIME8是高级定时器,TIME2~TIME5是通用定时器,TIME6和TIME7是基本定时器。以TIME3为例总结定时计数器的基本用法。

1.TIM3的配置步骤

①TIM3时钟使能

  APB1外设复位寄存器 (RCC_APB1RSTR)  

stm32寄存器版学习笔记04 定时计数器中断

置1开启。清0关闭。

第一位对TIM3的时钟使能

  Eg:RCC->APB1ENR|=1<<1;  //使能TIM3时钟

  APB2外设时钟使能寄存器(RCC_APB2ENR)

stm32寄存器版学习笔记04 定时计数器中断

 

②设置TIM3_ARR和TIM3_PSC的值

通过这两个寄存器来设置自动重装的值以及分频系数。

  自动重装载寄存器(TIMx_ARR)

stm32寄存器版学习笔记04 定时计数器中断

 

  预分频器(TIMx_PSC)

stm32寄存器版学习笔记04 定时计数器中断

 

③设置TIM3_DIER允许更新中断

  中断使能寄存器(TIMx_DIER)

stm32寄存器版学习笔记04 定时计数器中断

0:禁止更新中断。1:允许更新中断

因为要使用TIM3的更新中断,所以设置DIER的UIE为为1,使能更新中断。

  Eg:  TIM3->DIER|=1<<0;   //允许更新中断

 

④允许TIM3工作

  控制寄存器1(TIMx_CR1)

stm32寄存器版学习笔记04 定时计数器中断

CEN:使能计数器 位0  0:禁止计数器; 1:使能计数器。

  Eg:  TIM3->CR1|=0x01;    //使能定时器3

    或   TIM3->CR1|=1<<0;

 

⑤TIM3中断分组设置

stm32寄存器版学习笔记04 定时计数器中断

直接调用MY_NVIC_Init()函数

Eg:MY_NVIC_Init(1,3,TIM3_IRQChannel,2);//抢占1,子优先级3,组2

 

⑥编写中断服务函数

  状态寄存器(TIMx_SR)

stm32寄存器版学习笔记04 定时计数器中断

stm32寄存器版学习笔记04 定时计数器中断

Eg:  if(TIM3->SR&0X0001)//溢出中断

  编写定时器中断服务函数,从而处理定时器产生的相关中断。在中断产生后,通过状态寄存器的值来判断此次产生的中断属于什么类型。然后执行相关的操作,这里使用的是更新(溢出)中断,所以在状态寄存器SR的最低位。处理完中断之后应该向TIM3_SR的最低位写0,来清除该中断标志。

 

 

  Eg://定时器3中断服务程序

原标题:stm32寄存器版学习笔记04 定时计数器中断

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录