定时器+中断 闪烁led

news2024/11/26 12:43:38

文章目录

    • 运行环境:
    • 1.1 定时器和中断
      • 1)定时器
      • 2)轮询和中断
    • 2.1配置
      • 1)定时器配置
      • 2)中断配置
      • 3)RCC和SYS
    • 3.1代码分析
    • 3.2添加代码
      • 1)中断处理函数IRQ中添加代码
      • 2)launch设置
    • 4.1定时器启动和定时器中断启动函数
    • 5.1实验效果

运行环境:

ubuntu18.04.melodic
宏基暗影骑士笔记本
stm32f427IIH6
stlink
9-24v可调电源

1.1 定时器和中断

1)定时器

类似闹钟,设定好对应时间,会在设定的时刻响起铃声。

分频:降低频率
计数:用来计数
重载:清零

当定时器中的计数值达到重载值时,计数值就会被清零,触发中断

2)轮询和中断

例如厨房里烧着开水,主人在客厅里看电视。为了防止开水烧干,他有两种方式:

第一种是每隔10分钟就去厨房看一眼

另一种是等水壶烧开了之后开始发出响声再去处理。

前者是轮询的方式,后者是中断的方式。

2.1配置

1)定时器配置

内部时钟稳定、省电,适用于精度要求不高的应用

在这里插入图片描述分频值:18000
计算周期(重载值):10000

A板计算:
180 000 000/180 00 /10000 = 1Hz
(1Hz,每秒触发一次中断)

实际填入17999、9999 (因为从0开始计数)

在这里插入图片描述

TIM1挂载在APB2

在这里插入图片描述在这里插入图片描述

2)中断配置

打开定时器更新中断(满了触发中断)

在这里插入图片描述

3)RCC和SYS

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

为每个外设 生成外设初始化.c/.h文件

在这里插入图片描述

3.1代码分析

在这里插入图片描述

初始化了定时器,但是还没启动,需要启动定时器
进入 初始化函数MX_TIM1_Init(),启动定时器

在这里插入图片描述

中断触发位置:
中断触发后就会执行这个函数 HAL_TIM_IRQHandler(&htim1),这个函数将定时器初始化,重新开始计数。

在这里插入图片描述

3.2添加代码

1)中断处理函数IRQ中添加代码

// 每秒翻转一次
HAL_GPIO_TogglePin(GPIOE, GPIO_PIN_11);
HAL_GPIO_TogglePin(GPIOF  , GPIO_PIN_14);

在这里插入图片描述

make编译,F5烧录调试

2)launch设置

修改成以下内容:可执行文件名是freeRTOS_LED.elf

{ =400x
    "configurations": [
    

        {
            "showDevDebugOutput": "parsed",
            "cwd": "${workspaceRoot}",
            "executable": "./build/TIM1.elf",
            "name": "Debug STM32",
            "request": "launch",
            "type": "cortex-debug",
            "servertype": "openocd",
            "device": "stm32f427",
            "configFiles": [
                "interface/stlink-v2-1.cfg",
                "target/stm32f4x.cfg"
            ]
        }
    ]
}

4.1定时器启动和定时器中断启动函数

在这里插入图片描述在这里插入图片描述

5.1实验效果

在这里插入图片描述在这里插入图片描述


⭐⭐⭐ 嘟嘟崽 ⭐⭐⭐
⭐⭐⭐ 祝你成功 ⭐⭐⭐

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

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

相关文章

VSCode 上的 swift 开发配置

安装Xcode和VsCode 在下列网址下载安装即可 VsCode: https://code.visualstudio.com/ Xcode:https://developer.apple.com/xcode/resources/ 或者apptore 打开xcode要求安装的东西都允许安装一下 启用 Swift 语言支持 确保你已经安装了 Xcode 和 VSCode。这是开始运行的最简…

【ITSS】信息技术服务标准(ITSS)的介绍以及发展历程

信息技术服务标准(ITSS)介绍 ITSS是Information TechnologyService Standards的缩写,中文意思是信息技术服务标准,是在工业和信息化部、国家标准化委的领导和支持下,由ITSS工作组研制的一套IT服务领域的标准库和一套提供IT服务的方…

AD9208的4通道 14-bit、2.4GSPS采样率之中文版资料

板卡概述 FMC137 是一款基于 VITA57.4 标准规范的 JESD204B 接口FMC 子 卡 模 块 , 该 模 块 可 以 实 现 4 路 14-bit 、 2GSPS/2.6GSPS/3GSPSADC 采集功能。该板卡 ADC 器件采用 ADI 公司的 AD9208 芯片,,与 ADI 公司的 AD9689 可以实现…

python 零基础入门难度如何?

在入门前先来了解一下Python是什么。 Python,他其实是一种受众非常广的语言,简单易学,在网上有大把大把的入门教程,学习曲线平滑。除了“简单”“万能”之外,还有众多库,Python的标准库非常强大&#xff0…

TEMPUS FUGIT: 1

环境准备 靶机链接:百度网盘 请输入提取码 提取码:d3du 虚拟机网络链接模式:NET模式 攻击机系统:kali linux 2022.03 信息收集 探测目标靶机开放端口和服务情况。 nmap -p- -A -sV 192.168.255.132 nmap --scriptvuln -p …

lvs作业

文章目录 NAT模式DR模式 基于 CentOS 7 构建 LVS-DR 群集。 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 。基于 CentOS 7 构建 LVS-DR 群集。 NAT模式 在 LVS 的 NAT 模式中,LVS 将客户端请求的 IP 地址和端口号修改为 LVS 的 NAT …

golang/goland memo

文章目录 golanggolang开发工具goland Build constraints exclude all the Go files in xxxxxxgoland 解决 Unresolved reference xxx问题goland 解决 cannot resolve directory xxxx问题 golang GOROOT:Go的安装目录。 GOPATH 是一个环境变量,用于指定…

软件设计师笔记--计算机系统知识

文章目录 前言学习资料计算机系统CPU运算器控制器进制原码反码补码移码浮点数寻址奇偶校验码海明码循环冗余校验码RISC和CISC流水线存储器Cache中断输入输出控制方式总线加密技术与认证技术加密算法可靠性公式 前言 博主是非科班出身的,但从大一开始自学编程&#…

【JAVA程序设计】(C00132)基于SSM的固定资产管理系统

基于SSM的固定资产管理系统 项目简介项目获取开发环境项目技术运行截图 项目简介 本系统为基于SSM的固定资产管理系统,本系统分为二种用户:超级管理员和普通管理员; 超级管理员功能: 首页查看、设备管理、平台账户管理、设备台账…

JavaScript经典教程(五)-- JavaScript基础 -- for、while、forEach、递归、字符串

186&#xff1a;JavaScript基础 - for、while、forEach、递归、字符串 1、循环 &#xff08;1&#xff09;for循环 1、标准语句 for(初始条件;判断条件;迭代语句){操作内容; }也可以这样写&#xff1a;把初始条件和迭代语句拆出 var a 0; for(;a < 5;){alert(a);a; }其…

【软件测试】项目测试—MySQL数据库操作应用场景?必会知识详全(超详细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 数据库在软件测试…

ASEMI代理亚德诺AD8130ARZ-REEL7芯片应用与参数分析

编辑-Z 本文将对AD8130ARZ-REEL7芯片进行详细的应用与参数分析&#xff0c;包括其主要特征、接口定义、电气特性以及使用注意事项等方面&#xff0c;旨在为广大读者提供对该芯片更全面的了解。 1、主要特征 AD8130ARZ-REEL7芯片是一种用于高速、低功耗差分信号放大的电路&…

使用CXF调用WSDL

简介 时隔多年&#xff0c;再次遇到需要调用WebService的业务&#xff0c;对方给予的wsdl说明文档还是内网的链接&#xff0c;并且设有基础访问权限&#xff0c;即在浏览器打开wsdl链接时需要输入【用户名密码】登录后方可查看wsdl文档&#xff0c;这需要设置代理&#xff08;我…

( 字符串) 242. 有效的字母异位词 ——【Leetcode每日一题】

❓242. 有效的字母异位词 难度&#xff1a;简单 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意&#xff1a;若 s 和 t 中每个字符出现的次数都相同&#xff0c;则称 s 和 t 互为字母异位词。 示例 1: 输入: s “anagram”, t “…

【5天打卡】学习Lodash的第五天——总结篇

Lodash 含有 Array, Collection, Date, Function, Lang, Math, Number, Object, String 等多个功能模块&#xff0c;总共几百个功能函数。官方文档上以字典顺序排序&#xff0c;不容易总结记忆。通过这5天的学习&#xff0c;我们对这一框架进行总结。主要从lodash的使用优势和迷…

电磁波、射频通信基础知识科普,超通俗解释!

一、电磁波 电磁波是能量的一种&#xff0c;凡是高于绝对零度的物体&#xff0c;都会释出电磁波。电与磁可说是一体两面&#xff0c;电流会产生磁场&#xff0c;变动的磁场则会产生电流。变化的电场和变化的磁场构成了一个不可分离的统一的场。 在低频的电振荡中&#xff0c;…

XCTF-Web2

Web_php_include <?php show_source(__FILE__); echo $_GET[hello]; $page$_GET[page]; while (strstr($page, "php://")) {$pagestr_replace("php://", "", $page); } include($page); ?>strstr() 查找字符串首次出现的位置&#xff0…

集合-ArrayList学习

1、特点&#xff1a; ArrayList 实现是一个动态数组&#xff0c;初始时是一个空数组。ArrayList 默认初始长度为0&#xff0c;在插入第一个元素的时候扩容为10&#xff0c;然后当数组存满的时候&#xff0c;数组会再次扩容&#xff0c;此时就扩容到原来的1.5倍。ArrayList 是线…

打造一个基于低代码的无代码平台,愿满足非专业人士的需求

一、开源项目简介 摸鱼低代码平台希望打造一个基于低代码的无代码平台。即能给程序员使用&#xff0c;也能满足非专业人士的需求。 后端基于Spring Cloud Alibaba注册中心、配置中心采用nacos当前版本完成oauth2统一认证接入持续进行功能完善 二、开源协议 使用Apache-2.0开…

人机交互到艺术设计及玫瑰花绘制实例

Python库之图形用户界面 Riverbank Computing | Introduction Welcome to wxPython! | wxPython Overview — PyGObject Python库之游戏开发 https://www.pygame.org/news Panda3D | Open Source Framework for 3D Rendering & Games python.cocos2d.org Python库之…