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 

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

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

相关文章

FreeRTOS列表与列表项相关知识总结以及列表项的插入与删除实战

1.列表与列表项概念及结构体介绍 1.1列表项简介 列表相当于链表,列表项相当于节点,FreeRTOS 中的列表是一个双向环形链表 1.2 列表、列表项、迷你列表项结构体 1)列表结构体 typedef struct xLIST { listFIRST_LIST_INTEGRITY_CHECK_VAL…

第三代半导体材料-碳化硅(SiC)详述

SiC产业概述 碳化硅(SiC)是第三代半导体材料的典型代表。 什么是半导体? 官话来说,半导体指常温下导电性能介于导体与绝缘体之间的材料。 但导电性能的强弱,并非是体现半导体材料价值的最直观属性,半导…

ARM CCA机密计算软件架构之软件堆栈概述

Arm CCA平台通过硬件添加和固件组件的混合方式实现,例如在处理元素(PEs)中的RME以及特定的固件组件,特别是监视器和领域管理监视器。本节介绍Arm CCA平台的软件堆栈。 软件堆栈概述 领域VM的执行旨在与Normal world(正常世界)隔离,领域VM由Normal world Host(正常世界…

TypeError: control character ‘delimiter‘ cannot be a newline (`\r` or `\n`)

报错 找到错误代码 这个错误是因为在使用 numpy.loadtxt() 函数时尝试将换行符(\n)作为分隔符(delimiter)。然而,换行符是用于标识文本文件中每一行的结束,而不是用于分隔数据字段。 解决 如果你的数据文…

项目记录:利用Redis实现缓存以提升查询效率

一、概述 当我们查询所有数据时,如果缓存中没有,则去数据库查询,如果有,直接查缓存的数据就行。注意定期更新缓存数据。 二、主体代码 private static final String ROOM_SCHEDULES_HASH "RoomSchedules";Overridepu…

【进阶】【JS逆向爬虫】【1.JavaScript 基础语法】初始JavaScript

JS逆向爬虫 初始JavaScript1.JavaScript 概述2.JavaScript 的作用3.浏览器执行 JS 简介4.JS 的组成ECMAScriptDOM ——文档对象模型BOM ——浏览器对象模型 5.JavaScript 运行过程 初始JavaScript 1.JavaScript 概述 Java是世界上最流行的语言之一,是一种运行在客…

如何高效查询文件:Linux 下的多种方法详解

如何高效查询文件:Linux 下的多种方法详解 在日常工作中,我们经常需要查找文件,无论是寻找特定的代码文件、配置文件还是其他文档。Linux 提供了多种强大的命令和工具,通过巧妙地使用管道符,我们可以将这些命令组合起来…

线程的6个状态(应该能应付一下考试)

如果你是一个拉面店的老板,员工是cpu资源,顾客是线程 一天中午,你的拉面店人很多,总共6个后厨全都在工作,此时: 来了一名顾客,这位顾客坐在位置玩手机 1.由于这位顾客没有下单,可能…

[设计模式 Go实现] 创建型~简单工厂模式

go 语言没有构造函数一说,所以一般会定义NewXXX函数来初始化相关类。 NewXXX 函数返回接口时就是简单工厂模式,也就是说Golang的一般推荐做法就是简单工厂。 代码实现 package simplefactoryimport "fmt"//API is interface type API interf…

Python+OpenGL绘制3D模型(九)完善插件功能: 矩阵,材质,法线

系列文章 一、逆向工程 Sketchup 逆向工程(一)破解.skp文件数据结构 Sketchup 逆向工程(二)分析三维模型数据结构 Sketchup 逆向工程(三)软件逆向工程从何处入手 Sketchup 逆向工程(四&#xf…

gulimall-002 分布式基础概念

1、微服务概念 微服务是一种非常流行的架构风格。 拒绝大型单体应用,基于业务边界进行服务微化拆分,各个服务独立部署运行。 每个服务运行在自己的单个进程使用轻量级机制通信可以使用不同的编程语言编写以及不同的数据存储技术 2、集群&分布式&…

力扣:63. 不同路径 II(动态规划)

题目: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。 现在考虑网格中有障碍物。那…

14个强大的JS库

文章目录 一、前言二、Handsontable:高效的数据网格处理库2.1、数据绑定和验证2.2、过滤和排序2.3、文件导出2.4、多框架兼容性2.5、丰富的附加功能2.6、GitHub受欢迎程度 三、Calendar:全功能可定制日历库3.1、多种视图类型3.2、任务和里程碑管理3.3、鼠…

【报错处理】opencv-3.4.1安装报错 error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]

description 最近在复现ORB-SLAM2的时候配置 opencv-3.4.1的环境, 官网下载的opencv-3.4.1 source文件, 原封不动地解压后按照该指导方法安装和编译, 在make的过程中, 出现了编译错误 (截图忘记了),具体报错如下: error: invalid conversion from ‘const char*’ …

【Linux操作系统】探秘Linux奥秘:用户、组、密码及权限管理的解密与实战

🌈个人主页:Sarapines Programmer🔥 系列专栏:《操作系统实验室》🔖诗赋清音:柳垂轻絮拂人衣,心随风舞梦飞。 山川湖海皆可涉,勇者征途逐星辉。 目录 🪐1 初识Linux OS &…

2023年03月09日_谷歌视觉语言模型PaLM-E的介绍

自从最近微软凭借OpenAI 和ChatGPT火了一把之后呢 老对手Google就总想着扳回一局 之前发布了硬刚ChatGPT的Bard 但是没想到翻车了 弄巧成拙 所以呢Google这一周又发了个大招 发布了史上最大的视觉语言模型PaLM-E 这个模型有多夸张呢 参数量高达5,620亿 是ChatGTP-3的三…

[spark] SaveMode

https://spark.apache.org/docs/latest/api/java/index.html?org/apache/spark/sql/SaveMode.html Overwrite 覆盖模式是指将DataFrame保存到数据源时,如果数据/表已经存在,则现有数据将被DataFrame的内容覆盖。 注意: Overwrite 模式会覆盖已存在的表…

9种卷积注意力机制创新方法汇总,含2024最新

今天咱们来聊聊卷积注意力机制。 相信各位在写论文的时候都苦恼过怎么更好地改模型,怎么更高效地提高模型的性能和泛化能力吧?我的建议是,不妨考虑考虑卷积注意力。 卷积注意力机制是一种通过关注输入数据中的不同部分来改进模型性能的方法…

《Linux系统与网络管理》复习题库---shell编程题

1、shell 编程题:在根目录下有四个文件 m1.c,m2.c,m3.c,m4.c,用 Shell 编程,实现自动创建 m1,m2,m3,m4 四个目录,并将 m1.c,m2.c,m3.c,m4.c 四个文件分别剪贴到各自相应的目录下。 #!/bin/bash…

Termius for Mac/Win:一站式终端模拟器、SSH 和 SFTP 客户端软件的卓越选择

随着远程工作和云技术的普及,对于高效安全的远程访问和管理服务器变得至关重要。Termius,一款强大且易用的终端模拟器、SSH 和 SFTP 客户端软件,正是满足这一需求的理想选择。 Termius 提供了一站式的解决方案,允许用户通过单一平…