概述

上一篇说了stm32F4GPIO的使用,这篇说说定时器的使用

一. stm32F407的定时器资源介绍:

​ STM32F407有14个定时器,其中有12个16位的定时器,2个32位的定时器

这几种定时器的区别

二.定时器的溢出时间计算:

  • Tout(溢出时间)=(ARR+1)(PSC+1)/Tclk
  • ARR:自动重装载寄存器,用于装载计数器
  • PSC:PSC预分频器(分频范围1~65535)
  • Tclk:外设时钟周期,可以在STM32F407的芯片手册中找到时钟框图

(备注:ARR是代表计数值,而外设时钟经过分频之后,为ARR提供计数时钟,【即每个时钟来,ARR就加1】)

三. 用定时器3,做一个实验:

目标使用定时器进行500ms的led闪烁

//声明一个GPIO结构体变量GPIO_InitTypeDef GPIO_InitStructure;//声明一个定时器结构体变量TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructrue;//声明一个中断优先分组的结构体变量NVIC_InitTypeDef NVIC_InitStructure;//使能GPIO外设时钟RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//定义一个GPIO结构体变量GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9 |GPIO_Pin_10;//对应引脚分别接到Led0,led1GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;         //GPIO为输出模式GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;    //100MHZGPIO_InitStructure.GPIO_OType=GPIO_OType_PP;        //推挽输出GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;          //上拉­GPIO_Init(GPIOF,&GPIO_InitStructure);//¶设置定时器中断的优先分组NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x01;   //抢占优先级为1NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03;          //响应优先级为3TIM_TimeBaseInitStructrue.TIM_Period=4999;     //Tout=(ARR+1)(PSC+1)/Tclk   (4999+1)(8399+1)/(1/84M)TIM_TimeBaseInitStructrue.TIM_Prescaler=8399;TIM_TimeBaseInitStructrue.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInitStructrue.TIM_ClockDivision=TIM_CKD_DIV1;//使能定时器3的外设时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//初始化定时器3TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStructrue);//设置优先级分组  为组2NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//初始化优先级分组NVIC_Init(&NVIC_InitStructure);//配置定时器的中断的中断源TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);//使能定时器3TIM_Cmd(TIM3,ENABLE);while(1){//无限循环等待中断}}
//定时器3的中断函数
void TIM3_IRQHandler(void)
{if(TIM_GetITStatus(TIM3,TIM_IT_Update)!=RESET){LED0=!LED0;LED1=!LED1;TIM_ClearITPendingBit(TIM3,TIM_IT_Update);}
}

此时就可以进行led每隔500ms翻转

后续我还会继续分享stm32 的相关知识,相信你会学到更多知识,我会在[ stm32 ] 专栏 持续更新,来关注本专栏吧!

文章有帮助到你,点赞,收藏,关注我吧!

stm32定时器中断_stm32F4之定时器的基本使用相关推荐

  1. ARM(I.MX6ULL) EPIT定时器中断实验、定时器按键消抖

    参考:Linux之ARM (I.MX6ULL) EPIT定时器详解 作者:一只青木呀 发布时间: 2020-09-20 10:03:37 网址:https://blog.csdn.net/weixin ...

  2. c51两个定时器中断冲突_STM32定时器与中断整理

    目录 1.系统异常中断 2.外部中断(全部) 3.优先级 5.如何开关中断示例 6.抢断优先级.响应优先级说明 7.定时器说明 7.1基本定时器 7.2高级/通用定时器 7.3定时器拓展补充-主要特性 ...

  3. tsm2812通用定时器中断_通用定时器中断(TIM2)

    //-------------------TIM2.c------------------------// #include "timer.h" #include "le ...

  4. 【数码管/定时器/中断】一个定时器控制数码管显示

    两种方式实现 /*用定时器以间隔500MS在6位数码管上 依次显示0.1.2.3-.C.D.E.F,重复.*/ /*轮流在每一位数码管上显示*/ --------------------------- ...

  5. python高精度定时器中断_0015 高精度定时器

    0012提过高精度时钟中断,这篇来讲下定时器. 传统操作系统内核一般都有个时间片tick,即相隔一定时间发生一次时钟中断,比如1毫秒,10毫秒,dos时代的1/18.5秒,有高精度时钟之后,我们通过定 ...

  6. STM32入门笔记(02):定时器之定时器中断、输入捕获和PWM输出(SPL库函数版)

    目录 定时器 8个定时器 定时器功能 定时器中断 常用通用定时器的寄存器 定时器中断实验目的: 定时器库函数及步骤 实验程序讲解 PWM 简介 STM32 PWM工作过程 PWM模式1 与 PWM模式 ...

  7. 初学STM32之定时器中断

    初学STM32之定时器中断 一.定时器概述 1.定时器的分类 STM32F10x系列总共最多有8个定时器分为高级定时器,通用定时器和基本定时器.三种定时器的主要区别如下图所示: 本文章仅介绍通用定时器 ...

  8. STM32定时器中断

    目录 一.关于STM32定时器中断 1.定时器分类 2.通用定时器的功能特点 3.定时器中断的触发 4.定时时钟计算方法 二.CubeMX初始化配置 1.芯片选型(我们这里运用的STM32F103C8 ...

  9. stm32 TIM定时器中断

    一.TIM(Timer)定时器 定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断: 16位计数器.预分频器.自动重装寄存器的时基单元,在72MHz计数时钟下可以实现最大59.65s的定时 ...

最新文章

  1. 基于二代和三代测序技术的柚子基因组混合拼装
  2. python爬取百度贴吧中的所有邮箱_使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号...
  3. 为什么传值时加号变成了空格_为什么中英文字间距不一样?我想谈谈我的理解...
  4. 全国计算机二级office基础知识,全国计算机二级office考试内容
  5. appsan可以扫描linux吗,[经验]使用appscan实现多站扫描简单自动化
  6. Cannot modify the value of a static config: spark.sql.queryExecutionListeners
  7. Python binascii
  8. 设计模式(4)—— 简单工厂模式(Simple Factory,创建型)
  9. 阿里巴巴分布式消息系统的演进之路
  10. java 2d 图形_Java学习笔记--Swing2D图形
  11. 20191223每日一句
  12. 竟然有这种榜单,程序员真的是又有爱又无聊
  13. Dicom标签之(0020,0037) Image Orientation (Patient)
  14. Unity Serialization 序列化
  15. 云大计算机初试最高分,【经验谈】初试总分360+,专业排名前五!云大社会工作专......
  16. python二维码生成识别代码_Python学习案例之二维码生成识别
  17. html鼠标键弹起事件,js鼠标按键事件和键盘按键事件用法实例汇总
  18. Mac添加新建文件按钮或服务
  19. 路由器中的DMZ功能是什么?
  20. xDM Land Patterns 封装工具使用笔记

热门文章

  1. unittest 出报告 并配合 jenkins,发现有用例错误,但是构建没出现红点 的解决方法
  2. 工控随笔_09_西门子_S7-200 Smart与V20 USS通信USS_RPM_R利用轮询的方式通讯异常
  3. 解决 Visual Studio 2017 RC 不兼容低版本 Visual Studio 创建的 MVC 4 项目的问题
  4. jQuery是否可以获取与元素关联的所有CSS样式?
  5. 如何在C#中用单个空格替换多个空格?
  6. 将集转换为列表而不创建新列表
  7. 如何在bash中等待多个子进程完成并在任何子进程以代码!= 0结尾时返回退出代码!= 0?
  8. nginx多层反向代理获取客户端真实ip
  9. 浅析jQuery原理并仿写封装一个自己的库
  10. Flutter学习目录