01 HAL库点亮LED灯

引言:本专题采取的开发平台是stm32cubeIDE, 文章后面会后提供

一 、 LED简介


  

          LED(Light Emitting Diode)是一种半导体发光器件,能够将电能直接转化为光能的电子元件。它具有体积小、功耗低、寿命长等特点,广泛应用于照明、显示、指示和通信等领域。 LED的工作原理是基于电子的注入和复合过程。LED由两个半导体材料(P型和N型)组成,它们通过一个PN结电路连接在一起。当正向电流作用于PN结时,从P区域注入到N区域的电子与从N区域注入到P区域的空穴进行复合,这个过程会产生光能并发出可见光。

LED的优点有:

1. 节能高效:相比传统的光源,LED的能量转换效率较高,能够将电能转化为光能,减少能量的浪费。

2. 寿命长:LED具有较长的使用寿命,一般可达数万小时,远远超过传统的白炽灯泡和荧光灯。

3. 易于控制:LED具备响应速度快、亮度可调、可进行数字控制等特点,便于实现灯光的各种效果和调节。

4. 小型化:LED体积小巧、轻便,适用于各种场景和产品的设计。 LED广泛应用于室内照明、户外照明、汽车照明、电子显示屏、指示灯、装饰照明等领域。近年来,LED技术不断创新,出现了各种颜色、大小和形状的LED产品,为人们带来更多的创新应用和便利。

二、 实验步骤


01 查看硬件原理图

02 配置GOIO为相应的工作模式

03 编写外设的驱动函数

04 查看实验现象、调试程序

01 .LED的原理图

可以发现, 给网络标号为LED1的引脚高电平, 对应的led灯就会被点亮

02 配置GOIO为相应的工作模式

点击右上角的file, 新建stm32工程。

因为我这里使用的芯片是由两个内核, 需要先配置外设分配给哪一个内核控制, 你们按照自己做实验的平台选择配置gpio的模式为输出模式就可以

接着勾选上cubemx在生成配置代码时帮我们生成对应的.c和.h文件。

03 编写外设的驱动函数

void led_on(void)
{HAL_GPIO_WritePin(GPIOE,GPIO_PIN_8,GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOE,GPIO_PIN_10,GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOF,GPIO_PIN_10,GPIO_PIN_SET);
}
void led_off(void)
{HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET);HAL_GPIO_WritePin(LED3_GPIO_Port, LED3_Pin, GPIO_PIN_RESET);}

这里使用的是hal的函数, 这里我就不将头文件拿过来了, 大家可以自己设计自己的头文件, 在里面设计自己的函数,宏定义啥的。

最后根据自己的板子选着合适的下载程序的方式。

资料提供:

链接:https://pan.baidu.com/s/1WfDXoHmvgLQEpHfbQx0zBg 
提取码:1234 

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

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

相关文章

接入Cloudflare后Nginx和Django获取用户真实IP的办法

可以用Nginx的real_ip的相关命令来实现这个需求。 01-real_ip命令集详解 real_ip命令的使用分为两个步骤: 01-1-设置从哪些代理IP获取真实IP 第1个步骤:通过set_real_ip_from命令设置从哪些代理IP请求获取真实的IP,比如下面的命令: set_real_ip_from…

Navicat for MySQL 创建函数——报错1418

解决方法 1查看是否开启了创建函数的功能 输入下面语句查看是否开启了创建函数的功能 show variables like %func%; 下面为创建函数功能为开启的查询结果 如果不是上面的结果可以用下面的语句修改为开启 set GLOBAL log_bin_trust_function_creatorstrue; //或 set GLOBAL …

【一分钟】ThinkPHP v6.0 (poc-yaml-thinkphp-v6-file-write)环境复现及poc解析

写在前面 一分钟表示是非常短的文章,只会做简单的描述。旨在用较短的时间获取有用的信息 环境下载 官方环境下载器:https://getcomposer.org/Composer-Setup.exe 下载文档时可以设置代理,不然下载不上,你懂的 下载成功 cmd cd…

Redis经典五大类型源码及底层实现(二)

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码、Kafka原理、分布式技术原理、数据库技术🔥如果感觉博主的文章还不错的…

数据结构:第7章:查找(复习)

顺序查找: ASL 折半查找: 这里 j 表示 二叉查找树的第 j 层 二叉排序树: 二叉排序树(Binary Search Tree,BST)是一种特殊的二叉树,定义: 对于二叉排序树的每个节点,…

全球电商平台API数据稳定接入

API是什么? API就是接口,就是通道,负责一个程序和其他软件的沟通,本质是预先定义的函数。”比如:电脑需要调用手机里面的信息,这时候你会拿一根数据线将电脑手机连接起来,电脑和手机上连接数据…

Linux学习笔记(一)

如果有自己的物理服务器请先查看[这篇文章](https://blog.csdn.net/yasinawolaopo/article/details/132391128)文章目录 网卡配置Linux基础指令ls:列出目录内容cd(mkdir.rmkdir): 切换文件夹(创建,删除操作)cp:复制文件或目录mv:文件/文件夹移动cat:查看文件vi:文件查看编辑man…

二进制文件分割器

二进制文件分割器 时间: 2023.12.29 作者: FlameCyclone 自己写的一个能方便分割文件的小工具 使用说明 输出文件名 输出文件名规则前缀文件名开始固定名称序号(10/16进制显示, 宽度以输出最大序号为准)分割范围(16进制显示, 宽度以输出最大范围为准)CRC32校验码8字符组成…

touchHLE实战之游戏

前面推荐了touchHLE,号称可以玩旧的IOS游戏,但是国外还是管理的很严格的,一直没有找到合适的游戏文件测试。最近,发现官网上公布了开发者赠送的一款游戏,试了下完美运行。 看到国外贴吧reddit上有人推荐可用的ipa资源&…

蓝桥杯C/C++程序设计——成绩统计

题目描述 小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。 如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。 请计算及格率和优秀率,用百分数表示&am…

不同语言告别2023,迎接2024

一、序言 1.一名合格的程序员,始于Hello World,终于Hello World,用不同语言表达2023最后一天。 2.在这一年里,博主新接触了VUE、Python、人工智能、JAVA的框架SprinBoot、微服务等,然后一路来感谢大家的支持&#xf…

ClickHouse基础知识(一):ClickHouse 入门

1. ClickHouse 入门 ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的列式存储数据库(DBMS),使用 C 语言编写,主要用于在线分析处理查询(OLAP),能够使用 SQL 查询实时生成分析数据报告。 2. Cl…

python使用selenium控制浏览器进行爬虫

这里以谷歌浏览器为例,需要安装一下chromedriver,其他浏览器也有相对应的driver,chromedriver下载地址:https://googlechromelabs.github.io/chrome-for-testing/ 然后是打开python环境安装一下依赖pip install selenium&#xf…

【低代码平台】10个开源免费Airtable 的替代方案

Airtable是一个易于使用的简单低代码平台,有助于团队协作管理复杂的数据表,并创建定制的工作流程。把它想象成一个类固醇上的云电子表格。 Airtable还简化了数据输入过程,连接和集成第三方服务和应用程序,并提供了许多数据导入/导…

毅速:3D打印技术传统模具行业影响深远

随着3D打印技术的不断发展和完善,一系列的优势使其在模具制造领域的应用越来越广泛,这一技术在模具行业的应用将为整个行业带来变革。 首先,3D打印技术将大幅提高模具制造的精度和效率。传统的模具制造过程中,由于加工设备的限制和…

gitee(码云)仓库内容更新,使用TortoiseGit同步本地仓库和远程仓库

前言: 网上有很多同步仓库教程,但都是git命令行操作。这篇使用TortoiseGit可视化操作同步本地仓库和远程仓库 克隆本地仓库,上传远程仓库,下载TortoiseGit可以看这篇使用gitee(码云)上传自己的代码&#xf…

Altium Designer20中遇到的问题和解决办法记录

最近二战考完研了,重新拾起之前学的一些项目,最近在优化以前话的四层PCB版的时候发现了在使用AD使碰到一些问题现在记录如下: 1.Altium Designer 中的 Clearance Constraint 错误如何修改 : 我遇到的报错如下:  这…

Vue模板编译

Vue模板编译 Vue生命周期中,在初始化阶段各项工作做完之后调用了vm.$mount方法,该方法的调用标志着初始化阶段的结束和进入下一个阶段,从官方文档给出的生命周期流程图中可以看到,下一个阶段就进入了模板编译阶段(created和befor…

2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项样题卷①

2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项(高职组) 样题(第1套) 目录 2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项(高职组) 样题(第1套) 模块一…

GitHub 一周热点汇总 第3期 (2023/12/24-12/30)

GitHub一周热点汇总第三期 (2023/12/24-12/30),梳理每周热门的GitHub项目,了解热点技术趋势,掌握前沿科技方向,发掘更多商机。元旦就要到了,提前祝大家新年快乐。 #1 StreamDiffusion 项目名称:StreamDiff…