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
原因
阅读全文
0 0
- stm32学习笔记(七)定时器中断
- STM32F103学习笔记(七) 定时器中断 (更新中断)
- STM32学习笔记6-定时器中断
- STM32学习笔记6-定时器中断
- [转]STM32学习笔记6-定时器中断
- STM32学习笔记一一定时器中断
- STM32学习-定时器中断实验
- STM32学习之:定时器中断
- stm32学习笔记——入门定时器中断
- stm32学习笔记(四)外部中断
- STM32单片机学习(5) 定时器中断实验
- STM32学习笔记---SysTick定时器
- STM32学习笔记time定时器
- STM32学习笔记之:stm32通用定时器
- STM32-外部中断学习笔记
- STM32 CortexM3 中断 学习笔记!
- STM32-外部中断学习笔记
- STM32-外部中断学习笔记
- 面试总结(一)
- 官网适配手机诀窍
- 基于fedora的.ks文件结构汇总
- 程序员的思维修炼读书笔记(一)
- HTML5-java-web基础-eclipse
- stm32学习笔记(七)定时器中断
- poj3252组合数学
- idea常用快捷键总结
- OGNL特殊符号的使用
- JVM学习笔记-03-常量池
- MATLAB小波去噪
- Unity实现图片的上传和下载
- 淘宝镜像(cnmp)的安装和使用
- 大数的四则运算