STM32—按键控制LED(定时器)

目录

1 、 电路构成及原理图 

2 、编写实现代码 

main.c

exit.c

3、代码讲解

4、烧录到开发板调试、验证代码

5、检验效果 


此笔记基于朗峰 STM32F103 系列全集成开发板的记录。

1 、 电路构成及原理图 

EXTI(External interrupt/event controller)—外部中断/事件控制器,管理着控制器的  20  个中断/事件线并且每个中断/事件线都对应有一个边沿(上升沿/下降沿)检测器,可以实现输入信号的边沿检测。EXTI  可对每个中断/事件线进行单独配置,可以配置为中断或者事件,
以及触发事件的属性。STM32F103  的中断控制器支持  20 个外部中断/事件请求。

2 、编写实现代码 

main.c

exit.c

 

3、代码讲解

main

初始化 HAL 库、初始化系统时钟(72Mhz)、初始化 LED、初始化按键最后初始化按键的外部中断。 因控制逻辑写在了中断服务函数里,程序运行后有中断产生时就自动运行了,所以 main 函数里也就没有什么需要处理了。 

exit.c

先初始化产生中断的引脚 PC8 也就是 KEY1 引脚,因KEY1 的另一个引脚连接在低电平 GND 端所以选择下降沿触发(按下按键时 PC8 引脚会由高电平被拉到低电平),也是这个原因 PC8 选择上拉即平时没有按下 KEY1 时 PC8 是高电平状态。 

随后就要用 HAL 库函数 HAL_NVIC_SetPriority()设置中断的优先级别了,这里中断线我们选择 EXTI9_5 因前面介绍了中断线和中断服务 函 数 的 对 应 关 系 , 引 脚 PC8 对 应 的 中 断 服 务 函 数 是EXTI9_5_IRQHandler()。 

4、烧录到开发板调试、验证代码

5、检验效果 

按下 KEY1 看到LED1 亮起,再次按 KEY1 键 LED1 熄灭。_______________________________________________________________

STM32F103RCT6开发板——全集成开发板,让开发更简单!

【全集成设计】 STM32F103RCT6开发板,采用全集成设计,集成了多种传感器和接口,让你的原型设计和开发工作更加高效。

【资料全】 我们提供详尽的开发文档、示例代码和教程,无论你是初学者还是资深开发者,都能快速上手,轻松开发。

【功能强大】 这款开发板搭载了高性能的STM32F103RCT6微控制器,具备丰富的外设和接口,满足你的各种开发需求。

【接口丰富】 USB、串口、I2C、SPI等多种接口一应俱全,支持各种外设扩展,让你的创意无限延伸。

【开发便捷】 无论是嵌入式系统开发、物联网项目还是智能家居控制,STM32F103RCT6开发板都能成为你的强大助手。

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

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

相关文章

机器视觉——物块分拣

项目进行到第四天,我们学到了很多,可以进行实操。 首先我们利用相机软件进行采图 然后导入代码里面 完整代码 dev_get_window (WindowHandle) list_image_files (采图, default, [], ImageFiles) for Index : 0 to |ImageFiles| - 1 by 1read_image (Im…

上BFT,是你的首选

上BFT,是你的首选 如果你想要找最智能的机器人,想要找品牌最全或者想要咨询专业的解决方案,一定不要错过BFT机器人采购站。BFT致力于为广大用户提供品质卓越、技术先进的机器人产品。 BFT里面机器人多种多样,不管您是想要工业机器…

取证工作: SysTools MailXaminer, 用强大功能辅助电子邮件调查工作的每一步

天津鸿萌科贸发展有限公司是 SysTools 系列软件的授权代理商。 SysTools MailXaminer 电子邮件取证软件将调查工作分为五个阶段:邮件加载、预览、搜索、分析及导出。软件对调查工作的每一阶段都提供了现代高级功能,以帮助数字取证调查员根据其具体要求对…

知乎知+广告推广开户充值的返点政策是怎样?

如何让您的品牌精准触达目标受众,实现高效传播与转化,成为了每一位市场人面临的挑战。为此,云衔科技作为业界领先的数字营销解决方案提供商,正式宣布全面支持知乎知广告开户及一站式代运营服务,旨在帮助各行业客户在知…

珠海鸿瑞毛利率持续下滑:核心产品销量大降,偿债能力偏弱

《港湾商业观察》黄懿 日前,珠海市鸿瑞信息技术股份有限公司(下称“珠海鸿瑞”)收到了北京证券交易所发出的第三轮审核问询函。 此前,2020年11月,珠海鸿瑞曾向深交所报送上市申请。IPO申请文件获受理后,珠…

用互斥锁解决缓存击穿

我先说一下正常的业务流程:需要查询店铺数据,我们会先从redis中查询,判断是否能命中,若命中说明redis中有需要的数据就直接返回;没有命中就需要去mysql数据库查询,在数据库中查到了就返回数据并把该数据存入…

pypi 发布自己的包

注册pypi个人用户 网址:https://pypi.org 目录结构dingtalk_utils 必须-pkgs- __init__.py .gitignore LICENSE 必须 README.md 必须 requirements.txt setup.py 必须安装依赖 pip install setuptools wheel安装上传工具 pip install twinesetup.py i…

Maxkb玩转大语言模型

Maxkb玩转大语言模型 随着国外大语言模型llama3的发布,搭建本地个人免费“人工智能”变得越来越简单,今天博主分享使用Max搭建本地的个人聊天式对话及个人本地知识域的搭建。 1.安装Maxkb开源应用 github docker快速安装 docker run -d --namemaxkb -p 8…

进入某个页面时将VUE中的某个Button按钮设置为选中状态

进入某个页面时将VUE中的某个Button按钮设置为选中状态 我想达到的效果如标题所说,目的是为了表示页面展示的内容是由于该按钮被选择的结果。 解决思路是使用VUE中的mounted()钩子函数,在该函数中调用按钮得到焦点方法、按钮被点击方法。具体代码如下&am…

Redis限流方案

限流简介 限流算法在分布式领域是一个经常被提起的话题,当系统的处理能力有限时,如何阻止计划外的请求继续对系统施压,是一个需要重视的问题。 除了控制流量,限流还有一个应用目的是用于控制用户行为,避免垃圾请求&a…

【echarts】如何制作,横坐标每个日期点如何对应一条竖线的图,以及 markline设置后不生效问题

图的样式如下: 在线演示 每一个日期,对应一条竖线展示。 echarts配置内容: 在线演示 option {xAxis: {type: category,data: [20240601, 20240602, 20240603, 20240604, 20240605, 20240606, 20240607] // X轴数据},yAxis: {type: valu…

Bond 网卡绑定技术学习

前言: 为了实现网卡的高可用性,需要学习一下 Bond技术 1. 概念 Bond(也被称为链路聚合、端口绑定或接口绑定)是一种网络技术,用于将多个物理网络接口(如以太网接口)组合成一个逻辑接口。这样做…

今日份动态规划学习

主要只搞了一个这道题,有点摸鱼了今天晚上,也是来小看一下这道题吧01背包完全背包 P1941 [NOIP2014 提高组] 飞扬的小鸟 题意: 这题是说,给我们一个游戏界面,界面的长度为n(水平距离)&#x…

E: Unable to locate package ros-kinetic-usb-cam

mkdir -p USB/src && cd USB/src catkin_init_workspace git clone https://github.com/bosch-ros-pkg/usb_cam.git cd .. catkin_make source devel/setup.bash echo "source ~/USB/devel/setup.bash" >> ~/.bashrc source ~/.bashrc 编译过程报错&…

Wireshark抓包日常运维实用过滤

0x0 Wireshark 介绍 Wireshark 是一款功能强大的网络分析工具,适用于网络专业人员。它提供了出色的过滤器,您可以轻松放大到您认为可能存在问题的位置。过滤器的主要好处是消除定位流量,并缩小要查找的数据类型。 0x1 根据源 IP 地址过滤主…

Golang | Leetcode Golang题解之第134题加油站

题目&#xff1a; 题解&#xff1a; func canCompleteCircuit(gas []int, cost []int) int {for i, n : 0, len(gas); i < n; {sumOfGas, sumOfCost, cnt : 0, 0, 0for cnt < n {j : (i cnt) % nsumOfGas gas[j]sumOfCost cost[j]if sumOfCost > sumOfGas {break}…

四川古力未来科技抖音小店开创电商新纪元,前景广阔值得期待!

在数字化浪潮汹涌的当下&#xff0c;电商行业正以前所未有的速度蓬勃发展。四川古力未来科技抖音小店&#xff0c;作为这一领域的佼佼者&#xff0c;凭借其独特的经营理念和创新的营销策略&#xff0c;正在开创电商行业的新纪元。本文将深入探讨四川古力未来科技抖音小店的前景…

25 - 销售分析III(高频 SQL 50 题基础版)

25 - 销售分析III -- where 是分组之前筛选数据 -- having 是分组之后筛选数据selectp.product_id,p.product_name fromSales s left join Product p on s.product_idp.product_id group byproduct_id havingmin(sale_date) >"2019-01-01" and max(sale_date)&…

京东商品采集以及应用场景||电商API接口

京东商品采集的步骤和应用场景可以归纳如下&#xff1a; 一、采集步骤 注册账号&#xff1a;首先&#xff0c;需要在京东开放平台注册一个开发者账号。创建应用&#xff1a;登录开放平台后&#xff0c;创建一个应用以获取API密钥和应用凭据。获取权限&#xff1a;根据所需的服…

Java学习【深入探索包装类和泛型】

Java学习【深入探索包装类和泛型】 &#x1f680;包装类获取包装类对象的方式使用valueOf()创建直接赋值 Integer成员方法 &#x1f680;泛型引出泛型泛型类泛型方法泛型接口泛型的继承和通配符泛型的上界 在Java的学习中&#xff0c;包装类和泛型是两个重要的概念&#xff0c;…