目录

一、关于STM32定时器中断

1、定时器分类

2、通用定时器的功能特点

3、定时器中断的触发

4、定时时钟计算方法

二、CubeMX初始化配置

1、芯片选型(我们这里运用的STM32F103C8T6)​编辑

2、时钟配置

3、TIM2中断初始化

4、外设模块初始化

5、工程导出

三、程序工程代码分析

1、定时器TIM2初始化

2、TIM2定时器中断

四、实验效果展示

五、总结

六、参考连接


一、关于STM32定时器中断

1、定时器分类

通常我们使用的都是通用定时器

2、通用定时器的功能特点

· 通用定时器特点

1.位于ABP1低速总线上

2.16位向下,向上/向下(中心对齐模式)计数模式,自动重装载计数器(TIMx_CNT)

3.16位可编程(可以实现修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数为1~65535任意数值

4.四个独立通道(TIMx_CH1~4),通道用来支持:

①输入捕获

②输出比较

③PWM生成

④单脉冲模式输出

5.可使用外部信号(TIM_ETR)控制定时器和定时器互连的同步电路

 · 定时器计数模式

①向上计数模式: 计数值从0计数到自动加载值(TIM_ARR),产生一个计数溢出事件,然后重新从0开始计数

②向下计数模式: 计数器从自动装入的值(TIM_ARR)开始向下计数到0,产生一个计数溢出事件,然后从计数装入值重新开始。

③中央对齐模式: 计数器从O开始到(自动装入值-1),产生计数溢出事件,然后向下计数到1,产生定时器溢出事件,然后从0开始计数。

如下为三种计数模式示意图

3、定时器中断的触发

定时器中断/事件产生:(六个独立的IRQ/DMA请求生成器)

①更新:计数器向上/向下溢出,计数器初始化(软件或者外部/内部触发)

②触发事件:计数器的启动,停止,初始化或者由内部/外部触发计数

③输入捕获

④输出比较

⑤支持针对定位的增量编码器和霍尔传感器电路

⑥触发输入作为外部时钟或者按周期的电流管理

STM32通用定时器可以被用于:测量输入信号的脉冲长度(输入捕获),或者产生输入波形(输出比较和PWM)等。

4、定时时钟计算方法

Tout = ((arr+1)(psc+1))/Tclk ;
其中:
Tclk:定时器的输入时钟频率(单位MHZ)
Tout:定时器溢出时间(单位为us)

arr: 计数装载值

psc: 时钟分频系数

二、CubeMX初始化配置

1、芯片选型(我们这里运用的STM32F103C8T6)

2、时钟配置

选择高速外部时钟HSE

时钟数具体配置如下

3、TIM2中断初始化

TIM2选择外部时钟作为时钟源,APB1时钟频率为72M,经过PSC72分频后定时器时钟频率为1Mhz,计数周期5000计满时间为0.005S,计数方式为向上计数

开启定时器中断

4、外设模块初始化

GPIOA3输出配置

USART1串口初始化

5、工程导出

三、程序工程代码分析

1、定时器TIM2初始化

2、TIM2定时器中断

开启TIM2定时器中断

中断回调函数实现计时满2sLED电平翻转一次,每计时满5s串口发送一个字符串到上位机

工程代码传送门:工程文件

四、实验效果展示

TIM_TI

五、总结

定时器中断则是通过时钟定时计数达到设定值时触发中断,进行中断服务函数的处理任务,定时器中断相比软件延时更加准确,且不占用CPU资源,定时器中断实验中最重要还是要明白定时时间的计算原理和方法。

六、参考连接

STM32CUBEMX_定时器控制LED闪烁

stm32定时器与定时器中断

STM32定时器中断相关推荐

  1. 7. STM32——定时器中断(1秒闪烁灯)

    STM32--定时器中断(1秒闪烁灯) 基本框架 1. 配置定时器时钟 在 stm32f10x_rcc.h 头文件中查找相关函数函数 2. 配置定时器结构体 在 stm32f10x_tim.h 头文件 ...

  2. stm32定时器中断的配置步骤

    stm32定时器中断的配置步骤 1>TIM3 时钟使能 位于低速的APB1总线上(注意:高级定时器是在高速的APB2总线上): RCC_APB1PeriphClockCmd(RCC_APB1Pe ...

  3. 【CubeMX配置stm32定时器中断】

    CubeMX配置stm32定时器中断 一.使用CubeMX对STM32进行基础的配置 1.选择需要使用的定时器 选择TIM2和TIM3示例, 注意: TIM2和其它定时器选择时钟的方法不同,TIM3等 ...

  4. stm32定时器中断配置及使用

    stm32定时器中断配置及使用 定时器中断就是:可以周期性的执行某些功能,而不受main函数的影响. 我们以通用定时器time3为例说明 1.首先配置时钟源为内部时钟,分频和充装载值根据自己需要填入, ...

  5. STM32定时器中断显示时间

    前言 利用STM32的定时器中断,实现时间的显示.我们知道利用定时器中断只能进行tick的计算,然而用来显示时间我们应该怎么办呢?经过项目的实际运用,我发现利用定时器中断配合串口通讯也能实现时间显示. ...

  6. stm32定时器中断_stm32F4之定时器的基本使用

    概述 上一篇说了stm32F4GPIO的使用,这篇说说定时器的使用 一. stm32F407的定时器资源介绍: ​ STM32F407有14个定时器,其中有12个16位的定时器,2个32位的定时器 这 ...

  7. stm32定时器中断类型分析

    一直在用的stm32定时器的中断都是TIM_IT_Update更新中断,也没问为什么,直到碰到有人使用TIM_IT_CC1中断,才想到这定时器的中断类型究竟有什么区别,都怪当时学习stm32的时候不够 ...

  8. STM32定时器中断实验-学习笔记

    目录 目录 目录 通用定时器简介 寄存器 控制寄存器 (TIMx_CR1) DMA/中断使能寄存器(TIMx_DIER) 预分频寄存器(TIMx_PSC) TIMx_CNT 寄存器 自动重装载寄存器( ...

  9. STM32定时器中断_立即触发解决方案

    STM32定时器初始化的一些问题 任务设计 1. 在STM32CUBEIDE中,初始化TIM定时器, 2. 于此是按键中断开启定时器的中断使能,则定时器的中断会在使能之后触发 3. 实际表现 4. 解 ...

最新文章

  1. SpringMVC(三):使用 POJO 对象绑定请求参数值
  2. 2019 CES展上最受外媒体关注的中国机器人产品及技术
  3. QT的QBluetoothServiceDiscoveryAgent类的使用
  4. html轮播文字上下轮播,js、jQuery实现文字上下无缝轮播、滚动效果
  5. sqlplus 小记
  6. Arcgis api for js 3.x 离线开发(1)
  7. 【SpringBoot】整合jdbc
  8. 思科路由器配置命令(一)
  9. UE脱机激活如何不拔网线实现在线激活
  10. 验证计算机名出现一般性网络错误,一般性网络错误请检查网络文档
  11. Centos 在 Selenium 使用中的异常:chrome not reachable
  12. EETI eGTouch Linux 驱动的安装与使用
  13. CListCtrl基本用法
  14. postman打不开
  15. 什么才是市场急需的前端工程师?【零基础web前端入门视频教程】
  16. 服务器无法ping通百度的处理方式
  17. 科沃斯擦窗机器人擦不干净怎么办_科沃斯自动擦玻璃机器人怎么样?有人用过智能擦窗户机吗?好不好用呢...
  18. 考研:研究生考试(十五天学完)之《高等数学上/下册》研究生学霸重点知识点总结之考试内容各科占比及常考知识重点梳理(函数极限连续、一元/多元函数微分学/积分学、常微分函数、向量代数与空间几何、无穷级数)
  19. HTML5开发移动web应用——Sencha Touch篇(5)
  20. quicktime pro 注册码

热门文章

  1. MATLAB数据分析与挖掘 --数据预处理篇
  2. java web基础编程题_Java Web基础笔试题
  3. rust tpa_外服一键升级指令是啥呀
  4. vue格式化代码去掉分号 : ; 使用单引号 : ‘ ‘
  5. UE 添加模块的全局宏
  6. C++ 同类不同对象的互相访问
  7. Java中二维数组长度(length)
  8. 教培机构不退费有哪些投诉渠道?中创教育来分享
  9. python读取图像的几种方式
  10. 干自媒体的8种死法,新手要知道!5年实战经验,希望能帮到你!