stm32定时器中断函数回调函数

方式一:stm32定时器中断可以直接在硬件中断函数TIM3_IRQHandler执行。

在HAL'库中可以注册回调函数,在定时器中断发生时调用注册的函数,这样可以统一接口,大大提高函数可读性,和硬件解耦提高程序可移植性。

使用过程如下

启用中断

编辑源码程序,在stm32f4xx_hal_config.h文件中打开USE_HAL_TIM_REGISTER_CALLBACKS宏定义为1。

在主程序中并注册回调函数,开启定时器中断,注意要先初始定时器-》注册回调函数-》开启定时器中断

/* 配置定时器中断回调函数*/HAL_TIM_RegisterCallback(&htim3, HAL_TIM_PERIOD_ELAPSED_CB_ID, MotorTimerCallback);//回调函数定义
void MotorTimerCallback(TIM_HandleTypeDef *htim)
{//中断代码
}//开启中断
HAL_TIM_Base_Start_IT(&htim3);

运行过程分析。

启用USE_HAL_TIM_REGISTER_CALLBACKS宏定义之后,在中断发生时,首先会调用硬件中断函数TIM3_IRQHandler,这是由单片机芯片硬件设计决定的,再此函数中会调用 HAL_TIM_IRQHandler(&htim3);

在HAL_TIM_IRQHandler中会有一段代码,决定执行哪个回调函数,这部分是在编译时就确定的。

所以在注册回调函数时就给这个函数指针赋值即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/780118.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue中使用图片url直接下载图片

vue中使用图片url直接下载图片 // 下载图片downloadByBlob(url, name) {let image new Image()image.setAttribute(crossOrigin, anonymous)image.src urlimage.onload () > {let canvas document.createElement(canvas)canvas.width image.widthcanvas.height image…

Django屏蔽Server响应头信息

一、背景 最近我们被安全部门的漏洞扫描工具扫出了一个服务端口的漏洞。这个服务本身是一个Django启动的web服务,并且除了登录页面,其它页面或者接口都需要进行登录授权才能进行访问。 漏洞扫描信息和提示修复信息如下: 自然这些漏洞如何修复&#xff0c…

美国裸机云多IP服务器:独享IP,多C段,高速稳定,站群优选!

美国裸机云多IP服务器,近年来在站群运营、网络架构优化等领域逐渐崭露头角,成为许多企业和个人用户的优选方案。那么,这种服务器究竟有何特别之处呢?下面,我们就来详细科普一下。 首先,我们来了解一下什么是裸机云多I…

太阳能发电园区3D可视化:揭秘绿色能源新纪元

在科技飞速发展的今天,绿色能源已成为推动社会进步的重要力量。太阳能发电作为绿色能源的重要代表,正在全球范围内掀起一股清洁能源的革命浪潮。 太阳能发电园区作为集中展示太阳能发电技术和应用的场所,其规模之大、设备之复杂,常…

Linux部分命令

目录 1.文件介绍 2.ls命令 3.目录命令 4.相对路径以及绝对路径 5.命令创建目录(文件夹) 6.which命令 7.find命令 8.grep命令 9.wc命令 10.echo、tail、重定向符 1.文件介绍 和window不同,Linux没有盘路径,所有的文件都存…

VSCode在文件生成添加作者,创建时间、最后编辑人和最后编辑时间等信息

一、安装插件 我使用的是 korofileheader 二、配置文件 左下角点击设置图标—设置—输入"ext:obkoro1.korofileheader"—点击"在setting.json中编辑" 进入后会自动定位到你添加信息的地方 "Author": "tom", "Date": "…

Netty核心原理剖析与RPC实践16-20

Netty核心原理剖析与RPC实践16-20 16 IO 加速:与众不同的 Netty 零拷贝技术 今天的课程我们继续讨论 Netty 实现高性能的另一个高阶特性——零拷贝。零拷贝是一个耳熟能详的词语,在 Linux、Kafka、RocketMQ 等知名的产品中都有使用,通常用于…

uniapp开发App——登陆流程 判断是否登陆,是,进入首页,否,跳转到登录页

一、登陆流程 文字描述:用户进入App,之后就是判断该App是否有用户登陆过,如果有,直接进入首页,否则跳转到登陆页,登陆成功后,进入首页。 流程图如下: 二、在uniapp项目中代码实现 实…

代码随想录算法训练营第二十四天(回溯1)|77. 组合(JAVA)

文章目录 回溯理论基础概念类型回溯模板 77. 组合解题思路源码 回溯理论基础 概念 回溯是递归的副产品,本质上是一种穷举 回溯解决的问题可以抽象为一种树形结构 类型 回溯主要用来解决以下问题 组合问题:N个数里面按一定规则找出k个数的集合切割问…

如何使用Docker打包构建Java项目然后部署发布?

前言 今天我们来讲下如何使用Docker打包构建Java项目并且完成部署发布。 前期准备,需要安装好docker。 以及一个需要安装好Maven的镜像,可以参考下面的文章。 构建一个包含mvn命令的Java 17基础镜像-CSDN博客 一、打包构建Java项目镜像 1、创建Jav…

【力扣】300. 最长递增子序列(DFS+DP两种方法实现)

目录 题目传送最长递增子序列[DFS 方法]DFS方法思路图思路简述代码大家可以自行考虑有没有优化的方法 最长递增子序列[DP]方法DP方法思路图思路简述代码方案 题目传送 原题目链接 最长递增子序列[DFS 方法] DFS方法思路图 思路简述 对于序列中的每一个数字只有选择和不选择两…

电脑开机慢怎么办,电脑开机慢解决方法

新电脑呢,开机速度特别快。有很多人会感觉到电脑拿回家以后,一按开机键,六秒七秒,这个电脑就启动起来了,但是用一段时间以后呢,他会明显感觉到这个开机的速度呢,会特别慢,可能从六秒…

OSX-02-Mac OS应用开发系列课程大纲和章节内容设计

本节笔者会详细介绍下本系统专题的大纲,以及每个专题章节的组织结构。这样读者会有一个全局的概念。 在开始前还是在再介绍一下下面这个框架图,因为比较重要,在这里再冗余介绍一下。开发Apple公司相关产品的软件时,主要有两个框架…

kubernetes(K8S)学习(六):K8S之Dashboard图形界面

K8S之Dashboard图形界面 一、Dashboard简介二、k8s安装Dashboard(1)下载Dashboard镜像(可选)(2)根据yaml文件创建资源(3)查看资源(4)生成登录需要的token(5)使用火狐 / 搜狗浏览器访问(个人用的搜狗) 一、Dashboard简介 官网&…

【最新版RabbitMQ3.13】Linux安装基于源码构建的RabbitMQ教程

前言 linux环境 安装方式有三种,我们这里使用源码安装 Linux下rpm、yum和源码三种安装方式简介 个人语雀首发教程:https://www.yuque.com/wzzz/java/kl2zn22b42svsc6b csdn地址: https://blog.csdn.net/u013625306/article/details/137151862 安装版本…

Netty核心原理剖析与RPC实践6-10

Netty核心原理剖析与RPC实践6-10 06-粘包拆包问题:如何获取一个完整的网络包 本节课开始我们将学习 Netty 通信过程中的编解码技术。编解码技术这是实现网络通信的基础,让我们可以定义任何满足业务需求的应用层协议。在网络编程中,我们经常…

3D人体姿态估计项目 | 从2D视频中通过检测人体关键点来估计3D人体姿态实现

项目应用场景 人体姿态估计是关于图像或视频中人体关节的 2D 或 3D 定位。一般来说,这个过程可以分为两个部分:(1) 2D 视频中的 2D 关键点检测;(2) 根据 2D 关键点进行 3D 位姿估计。这个项目使用 Detectron2 从任意的 2D 视频中检测 2D 关节…

vue2处理跨域问题

vue中访问springboot中的RestController中的服务 &#xff08;vue.config.js不生效-CSDN博客&#xff09; 1、创建项目 使用vue init webpack my_frontend 创建vue项目 在HelloWorld.vue文件中添加内容&#xff1a; HelloWorld.vue 文件内容&#xff1a; <template>&…

LLMs之Mistral:Mistral 7B v0.2的简介、安装和使用方法、案例应用之详细攻略

LLMs之Mistral&#xff1a;Mistral 7B v0.2的简介、安装和使用方法、案例应用之详细攻略 导读&#xff1a;Mistral AI首个7B模型发布于2023年9月&#xff0c;在基准测试中超越Llama 2 13B&#xff0c;一下子声名大振。Mistral 7B v0.2对应的指令调优版本Mistral-7B-Instruct-v0…

JS数组练习

查找、筛选 Code <script>// 筛选>10的数组中元素var num1 [10, 2, 5, 0, 11, 121, 3, 0];var num2 [];var j 0;for (var i 0; i < num1.length; i) {// 法1// if (num1[i] > 10) {// num2[j] num1[i];// j;// }// 法2// if (num1[i] > 10) {/…