当前位置: 首页 > news >正文

嵌入式开发学习日志30——stm32之定时器中断简单项目练习

        在了解了定时器中断的相关知识后,就可以来做一些简单的项目练习了,这里还是以最通俗易懂的点灯操作为例。

        由定时器中断控制的点灯操作和其他中断一样,在中断产生前灯泡是不会亮的,但是一旦中断产生,中断函数就会执行,此时灯泡就会亮起。

        但是值得注意的是,相比于用开关控制LED的外部中断EXTI,定时器中断每隔固定的时间就会让灯泡自动亮起,实现一个小的“自动化”操作,可谓解放双手。

        下面让我们来看看定时器中断的部分怎么写。

        

        首先还是头文件的书写,这是既定操作,不过这里的初始化函数中需要带入参数,以便根据你的需要调整定时器的参数。

        首先,由于定时器时钟模块挂载在了APB1上,所以首先要开启对应的时钟。下面就是对定时器进行初始化配置。

        第一个TIM_Period,需要传入的就是你需要计数的值,这个参数由你传进去的自动重载值arr决定。第二个Prescaler决定的是分频的系数,这同样由你传入的psc的数值决定。第三个就是决定计数方式的CounterMode了,这里正常选择向上计数,如果向下计数,它计数方式是从自动重载值往下减到0为止。

        在初始化参数后,我们还需要对定时器触发中断的方式进行设定,毕竟它的方式有四种。这里选择计数引发的更新中断。

        为了防止开启中断后立即进入中断,我们需要先将中断标志清除,要用到clearIT函数。

         下面就是中断操作绕不开的NVIC初始化,具体步骤在之前详细介绍过了,这里就不多赘述,但要注意的是,定时器通道也需要通过查表来确认,不能随便写。

        最后,最最重要的是,定时器使能,也就是所谓的开启定时器,否则你就干瞪眼看着灯泡啥事儿都不发生吧。

        

        定时器中断服务函数的编写和外部中断基本差不都,也不需要在头文件中声明,同时也要注意最后清除中断标志的操作,否则会一直产生中断。

        (最近一直很忙,日更的学习日志可能要变成不定期更新了,在这里对于愿意看我写的菜鸟文章的读者说声抱歉)

http://www.dtcms.com/a/414782.html

相关文章:

  • 网站建设经验会议讲话稿东莞建设银行电话号码
  • Unity模拟谐波运动
  • Overleaf编译超时,超出免费计划编译时限(已解决)
  • MySQL 主主复制 + keepalived + HAProxy
  • ARM Synchronization Primitives
  • 好网站建设公司哪家好网站建设首选九零后网络
  • 负载均衡式的在线OJ项目编写(四)
  • Redis 解锁:C++ 实战深度探索 Set 数据类型
  • Nginx 核心安全配置总结
  • xbatis基于 mybatis 的 ORM 框架
  • Spring Gateway动态路由实现方案
  • 网站在线提交询盘系统 能直接发到邮箱深圳市工业设计行业协会
  • Python编程练习:7个经典题目详解
  • JCR分区,中科院分区,CCF分区的含义与区别
  • 二型最大似然(Type II Maximum Likelihood):概述与核心概念
  • 娄底网站建设开发自媒体素材视频网站
  • 云浮源峰网站建设工作室地址门户网站建设相关需求
  • 鸿蒙父组件处理子组件的点击事件
  • DDPM原理解析
  • 白盒密码:守护不可信环境中的密钥安全
  • 创建一个网站买卖WordPress外链方法
  • 使用 Go SDK 玩转 Docker:从容器到多架构构建
  • 原生微信小程序开发基础知识总结架构逻辑
  • 树莓派实现的自动垃圾(纸团)回收机器人
  • 【ROS2学习笔记】节点篇:节点概述
  • Java面试宝典:网络协议与Netty二
  • 自然语言处理(01)
  • 如何利用模板 + 继承的方式,形成动态多态的效果呢?
  • UE_ContrlRig
  • 江苏省城乡住房建设厅网站网站建设及维护流程图