STM32定时器中断的使用示例

STM32定时器中断的使用示例

  • 前言
  • 硬件和软件
  • cubemx使能定时器中断
  • 中断服务函数案例
  • 输出结果

前言

上一篇博客实现了定时器输出pwm,这篇接着上次的工程,在上次的工程上做简单的配置即可

硬件和软件

  1. 硬件使用的是stm32h750vbt6;
  2. 软件用到了stm32cubemx和keil5;

cubemx使能定时器中断

在这里插入图片描述
勾选打开dma3的中断

中断服务函数案例

在main.c中相应位置添加以下代码

/* USER CODE BEGIN PV */
uint16_t my_tim8_Pulse=50;
uint16_t my_tim8_Pulse_max=80;
uint16_t my_tim8_Pulse_min=20;
uint16_t my_tim8_Pulse_state=1;
/* USER CODE END PV */
/* USER CODE BEGIN 0 */
//TIM中断服务函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
		if(htim->Instance == htim3.Instance)
		{	
			if (my_tim8_Pulse_state){
				my_tim8_Pulse +=20;
				if(my_tim8_Pulse >= my_tim8_Pulse_max){
					my_tim8_Pulse_state = 0;
				}
			}
			else{
					my_tim8_Pulse -=20;
					if(my_tim8_Pulse <= my_tim8_Pulse_min){
					my_tim8_Pulse_state = 1;
					}
			}
			__HAL_TIM_SET_COMPARE(&htim8,TIM_CHANNEL_1,my_tim8_Pulse); //修改tim8输出pwm占空比
		}
}
/* USER CODE END 0 */

MAIN函数中:

  /* USER CODE BEGIN 2 */
	
	/* 定时器3通道1输出PWM */
	HAL_TIM_PWM_Start_IT(&htim3,TIM_CHANNEL_1);
	//占空比百分之50
	__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,12000);
	
		/* 定时器8通道1输出PWM */
	HAL_TIM_PWM_Start_IT(&htim8,TIM_CHANNEL_1);
	/* 定时器8通道1互补输出PWM */
	HAL_TIMEx_PWMN_Start(&htim8, TIM_CHANNEL_1);
	//占空比百分之50
	__HAL_TIM_SET_COMPARE(&htim8,TIM_CHANNEL_1,50);
	
	//使能定时器更新中断和开启定时器计数
	HAL_TIM_Base_Start_IT(&htim3); 

  /* USER CODE END 2 */

这一句很重要,开启定时器计数
在这里插入图片描述

输出结果

可以看到在每次TM3溢出后触发中断,改变TIM8输出PWM的占空比
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微服务系列文章 之 Nginx状态监控日志分析详解

1、Nginx状态监控 Nginx提供了一个内置的状态信息监控页面可用于监控Nginx的整体访问情况&#xff0c;这个功能由ngx_http_stub_status_module模块进行实现。 使用nginx -V 2>&1 | grep -o with-http_stub_status_module命令检测当前Nginx是否有status功能&#xff0c…

JAVA - 内存管理

目录 内存管理是什么 JVM内存区域组成 程序计数器PC java虚拟机栈 本地方法栈 JAVA堆 方法区 常量池 运行时常量池 内存管理是什么 Java的内存管理就是对象的分配和释放问题 分配 &#xff1a;内存的分配由程序完成的&#xff0c;程序员通过关键字new 为每个对象申请…

【iOS】内存管理五大区

参考博客&#xff1a;iOS内存管理学习第一篇-内存五大区 3.1 OC特性之 内存五大区域 1. 简述 程序要想执行&#xff0c;第一步就需要 被加载到内存中 内存五大区域: 栈区,堆区,静态区,常量区,代码段. 栈区&#xff08;stack&#xff09;由编译器自动分配并释放&#xff0c;存放…

React 安装 报错“Modal不能用作jsx组件”

提示 &#xff1a;‘Modal’ cannot be used as a JSX component. 原因&#xff1a;可能导致是类似antd组件报错 要确认react ts 版本是否适配 解决方法&#xff1a; 第一步&#xff1a;查看代码中的 package.json 文件 查看 typescript 与 types/react 第二步&#xff1a;查…

Shuffle简单理解

map的结果本身是无序的&#xff0c;但是map输出的结果有序 mapper和reduce是不同的机器&#xff0c;进行了网络传输&#xff0c;所以存在数据拷贝 第二次排序&#xff0c;是将每个reduce对应的task进行排序&#xff0c;然后再进入reduce maptask运行结束&#xff0c;每个mask块…

详解Windows安装分布式版本控制系统git

文章目录 前言下载安装相关链接 前言 git是一个分布式版本控制软件&#xff0c;最初由Linux创作者Linus Torvalds创作&#xff0c;并于2015年以GPL许可协议发布。git易于学习&#xff0c;占用空间小&#xff0c;性能却快如闪电&#xff0c;可以快速、 高效的管理从小到大的项目…

Java设计模式-责任链(Chain of Responsibility)模式

介绍 Java责任链&#xff08;Chain of Responsibility&#xff09;设计模式是指很多处理对象构成一个链&#xff0c;链中前一个对象指向后一个对象。请求在链中传递&#xff0c;一个请求可以被一个或者多个对象处理。调用方&#xff08;即客户端&#xff09;不知道请求会被链中…

DT灯光基础(辉光 雾 阴影 渲染选项)

点光源 不能宣染&#xff0c;换个版本。不能正常预览 聚光灯 t 手柄 挡光版 平行光阴影 光线追踪阴影 没有看见阴影 灯光使用贴图 环境光 不进行渲染物体 不渲染阴影 接收阴影 不反射 可以看到反射 没有反射了 灯光链接 取消灯照 灯光雾 辉光 变化不明显

瑞芯微|如何让拥有双网口的Linux设备实现数据包转发?

本文主要讲解如何&#xff0c;解决基于3568实现双网口互通问题。 一、组网 如下图所示&#xff1a; rk3568自带2个千兆以太口&#xff0c;对应网卡名称为&#xff1a;eth0、eth1pc1和pc2分别连接这2个网口pc1与eth0连接&#xff0c;网段&#xff1a;192.168.30.0pc2与eth1连…

PostgreSQL 的就业前景如何?

PostgreSQL的就业前景非常广阔&#xff0c;它是一种功能强大、可靠且开源的关系型数据库管理系统。以下是说明PostgreSQL就业前景的几个关键点&#xff1a; 1.高需求&#xff1a;随着企业和组织对数据存储和管理的需求不断增长&#xff0c;对数据库专业人员的需求也在持续上升…

喜讯!旭帆科技成功入驻“科大硅谷”!

2023年7月&#xff0c;安徽旭帆信息科技有限公司&#xff08;以下简称“旭帆科技”&#xff09;成功入驻“科大硅谷”&#xff0c;成为合肥城市发展新引擎、科创生态集群企业队伍中的一员。 “科大硅谷”项目建设总投资约75.82亿&#xff0c;共计17.37平方公里&#xff0c;是聚…

idea手动导入了包但编译运行还是报找不到xxx.jar包的问题

1、先把jar包放目录下并add as libary 2、在pom.xml中加入 <!--添加的本地的外部jar包依赖--><dependency><!--groupId、artifactId、version为自定义&#xff0c;groupId与artifactId但是不能重名--><groupId>JNative</groupId><artifactId…

如何设计光场2.0(聚焦型光场相机)系统参数

1. 系统参数设计 目前的硬件系统的现状&#xff1a;主透镜50mm&#xff0c;MLA&#xff1a;15*15&#xff0c;d0.5mm&#xff0c;f15mm&#xff0c;s4.8um 开普勒型光场系统&#xff1a; 首先我们需要确定系统的M&#xff0c;M参数表示单个位置的点能被多少个小微透镜成像&am…

分享一个唯美雪花界面

先看效果&#xff1a; 再看代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>雪</title><meta name"viewport" content"widthdevice-width, initial-scale1&…

【3-D深度学习:肺肿瘤分割】创建和训练 V-Net 神经网络,并从 3D 医学图像中对肺肿瘤进行语义分割研究(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f308;4 Matlab代码实现 &#x1f4a5;1 概述 使用3D深度学习进行肺肿瘤分割是一种有前景的研究方向。V-Net是一种常用的3D神经网络&#xff0c;特别适用于医学图像分割任务。下面是一个基本…

【Web安全】小白怎么快速挖到第一个漏洞,src漏洞挖掘经验分享,绝对干货!

src漏洞挖掘经验分享 – 掌控安全以恒 一、公益src 公益src是一个白帽子提交随机发现的漏洞的品台&#xff0c;我们可以把我们随机发现或者是主动寻找到的漏洞在漏洞盒子进行提交。 在挖掘src的时候不能越红线&#xff0c;一般情况下遇到SQL注入 只获取数据库名字以证明漏洞的…

android JSBridge的加载时机问题

https://github.com/lzyzsd/JsBridge 也算是比较悠久和使用了。 可供参考的android和IOS&#xff0c;以及前端的使用 https://segmentfault.com/a/1190000018208609 遇到的问题&#xff1a; 比如&#xff1a; 从前端在加载WebView的时候&#xff0c;执行了某些动作&#xff0c…

qiankun:react18主应用 + 微应用 react18 + vue3

一&#xff1a;主应用 搭建react项目 npx create-react-app react-qiankun-main安装Antd npm install antd –save在 index.js中引入 import { ConfigProvider } from "antd"; import zhCN from "antd/locale/zh_CN"; import "antd/dist/reset.css…

【C++】将类对象转换成基本数据类型

2023年7月19日&#xff0c;周三晚上&#xff1a; 今天晚上看源码的时候&#xff0c;突然在某个类里面看到了“operator bool() const;”&#xff0c;我完全想不起来这是啥意思了&#xff0c;于是今晚重新学习了一下 目录 类型转换函数的定义类型转换函数的作用 类型转换函数的…

Redis(三)存储原理与数据模型(hash冲突、渐进式rehash)

Redis系列文章 Redis&#xff08;一&#xff09;原理及基本命令&#xff08;柔性数组&#xff09; Redis&#xff08;二&#xff09;网络协议和异步方式&#xff08;乐观锁&悲观锁&#xff09; Redis&#xff08;三&#xff09;存储原理与数据模型&#xff08;hash冲突、渐…