当前位置: 首页 > backend >正文

[嵌入式实验]实验二:LED控制

一、实验目的

1.熟悉开发环境

2.控制LED灯

二、实验环境

硬件:STM32开发板、CMSIS-DAP调试工具

软件:ARM的IDE:Keil C51

三、实验内容

1.实验原理

(1)LED灯原理与点亮

LED即发光二极管,有电流通过时会发光。stm32通过三极管来实现对LED灯的点亮与熄灭。常见的三极管分为NPN型和PNP型。

(2)GPIO基本操作

开发板上三个LED灯的引脚为PH10,PH11,PH12,如图1所示。HAL库中提供了一个操作GPIO电平的函数:HAL_GPIO_WritePin函数,使得对应的引脚输出高电平或者低电平。

图 1

2.实验一:熄灭LED灯

(1)连接设备

连接设备的SWD下载线

(2)运行代码熄灭LED灯

程序中部分代码如下图(图2)所示,首先,通过调用HAL_GPIO_WritePin()函数将每个LED灯设置为高电平(GPIO_PIN_SET),使它们点亮。然后,使用HAL_Delay函数延时100毫秒。接着再次调用HAL_GPIO_WritePin函数将每个LED灯设置为低电平(GPIO_PIN_RESET),使它们熄灭。

图 2

(3)实验结果

如图3所示,LED灯点亮一秒后成功熄灭。

图 3

3.实验二:实现LED灯闪烁

(1)连接设备

连接设备的SWD下载线

(2)运行代码控制LED灯闪烁

程序中部分代码如下图(图4)所示,其中设置变量a=0,循环次数max=5,当运行while循环时,通过bsp_led_toggle()函数翻转指定的LED指示灯,即当LED灯亮时,该函数会让其熄灭;当LED灯熄灭时,该函数会点亮LED灯。再通过nop_delay_ms()函数实现延时功能,在本次实验中,通过编写代码控制LED灯重复执行闪烁5次,亮100ms后,熄灭500ms。

图 4

(3)实验结果

如下图(图5)所示,运行程序后实现LED灯的闪烁。

图 5

图 6

实验小

本次实验学习了关于LED灯的点亮和熄灭的原理,实验中通过控制高低电平以实现LED灯的点亮和熄灭。同时,学习了HAL库中的相关函数,例如使用bsp_led_toggle()函数翻转指定的LED指示灯,通过nop_delay_ms()函数实现延时功能。

控制LED灯闪烁

http://www.xdnf.cn/news/9872.html

相关文章:

  • Dynamics 365 Business Central AI Sales Order Agent Copilot
  • Redis 延迟队列
  • 【东枫科技】KrakenSDR 天线阵列设置
  • 1.测试过程之需求分析和测试计划
  • 【LeetCode 热题 100】最小路径和 / 最长回文子串 / 最长公共子序列 / 编辑距离
  • Ubuntu 中安装 PostgreSQL 及常规操作指南
  • JAVA与C语言之间的差异(二)
  • 1614. 括号的最大嵌套深度【 力扣(LeetCode) 】
  • 摩尔信使MThings无法生成机器码的解决方法
  • 腾讯云国际站性能调优
  • 【静电模拟】使用打火机的电子部分模拟手指静电
  • 机器学习-线性回归基础
  • 【Elasticsearch】suggest
  • C++17常量
  • 【Python办公】将Excel表格转json(字典)数据-可自定义key和value
  • TeleAI发布TeleChat2.5及T1正式版,双双开源上线魔乐社区!
  • 实验设计与分析(第6版,Montgomery)第5章析因设计引导5.7节思考题5.6 R语言解题
  • ubuntu mysql 8.0.42 基于二进制日志文件位置和GTID主从复制配置
  • 玛哈特校平机:金属板材加工的精整专家
  • 记一次 Starrocks be 内存异常宕机
  • Ubuntu20.04操作系统ssh开启oot账户登录
  • 大数据学习(125)-hive数据分析
  • HOW - 简历和求职面试宝典(七)
  • 整数加减法测试题
  • API网关和API管理的区别
  • 【PCB工艺】绘制原理图 + PCB设计大纲:最小核心板STM32F103ZET6
  • Day39
  • remote: error: hook declined to update refs/heads.....
  • DrissionPage ChromiumPage模式:浏览器自动化的高效利器
  • 【PhysUnits】15.1 引入P1后的加一特质(add1.rs)