stm32学习笔记(七)定时器中断

来源:互联网 发布:db2数据库创建用户 编辑:程序博客网 时间:2024/05/01 09:53
#include "timer.h"#include "led.h"////////////////////////////////////////////////////////////////////////////////// //本程序只供学习使用,未经作者许可,不得用于其它任何用途//Mini STM32开发板//通用定时器 驱动代码   //正点原子@ALIENTEK//技术论坛:www.openedv.com//修改日期:2010/12/03//版本:V1.0//版权所有,盗版必究。//Copyright(C) 正点原子 2009-2019//All rights reserved//////////////////////////////////////////////////////////////////////////////////    //通用定时器中断初始化//这里时钟选择为APB1的2倍,而APB1为36M//arr:自动重装值。//psc:时钟预分频数//这里使用的是定时器3!void TIM3_Int_Init(u16 arr,u16 psc){    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值 计数到5000为500msTIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值  10Khz的计数频率  TIM_TimeBaseStructure.TIM_ClockDivision = 0; //设置时钟分割:TDTS = Tck_timTIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位 TIM_ITConfig(  //使能或者失能指定的TIM中断TIM3, //TIM2TIM_IT_Update ,ENABLE  //使能);NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;  //TIM3中断NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;  //先占优先级0级NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;  //从优先级3级NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能NVIC_Init(&NVIC_InitStructure);  //根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器TIM_Cmd(TIM3, ENABLE);  //使能TIMx外设 }void TIM3_IRQHandler(void)   //TIM3中断{if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查指定的TIM中断发生与否:TIM 中断源 {TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );  //清除TIMx的中断待处理位:TIM 中断源 LED1=!LED1;}}


定时器

计数器分辨率

计数器类型

预分频系数

产生DMA请求

捕获/比较通道

互补输出

TIM1

TIM8

16

向上,向下,向上/向下

1-65536之间的任意数

可以

4

TIM2

TIM3

TIM4

TIM5

16

向上,向下,向上/向下

1-65536之间的任意数

可以

4

没有

TIM6

TIM7

16

向上

1-65536之间的任意数

可以

0

没有




普通定时器只能向上计数,计数达到最大装载值时产生更新时间,并清零从头开始计数。计数最大值为65535.


定时中断周期为  (1/72M)*7200*5000=500ms

  / /这里时钟选择为APB1的2倍,而APB1为36M

原因


原创粉丝点击