[嵌入式实验]实验二: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灯闪烁

相关推荐
点灯小铭12 分钟前
基于单片机的智能收银机模拟系统设计
单片机·嵌入式硬件·mongodb·毕业设计·课程设计·期末大作业
TEC_INO17 分钟前
STM32_9:I2C_DHT11_OLED项目
stm32·单片机·嵌入式硬件
__万波__19 分钟前
STM32基于HAL 库开发包创建新的工程-编译-烧录
stm32·单片机·嵌入式硬件
曾浩轩33 分钟前
跟着江协科技学STM32之4-5OLED模块教程OLED显示原理
科技·stm32·单片机·嵌入式硬件·学习
BreezeJuvenile1 小时前
ADC_案例练习:独立模式多通道采集
stm32·单片机·adc·多通道采集·dma辅助
代码游侠1 小时前
学习笔记——HC-SR04 超声波测距传感器
开发语言·笔记·嵌入式硬件·学习
Joshua-a1 小时前
高云FPGA在线调试/逻辑分析仪简要使用流程
嵌入式硬件·fpga开发·高云
国科安芯1 小时前
高轨航天器抗辐照MCU选型约束分析
单片机·嵌入式硬件·性能优化·机器人·安全性测试
CS Beginner2 小时前
【单片机】嵌入式显示屏开发框架:QT、SDL、LVGL 深度解析
单片机·嵌入式硬件·qt
YouEmbedded2 小时前
解码从架构到嵌套向量中断控制器(NVIC)
stm32·软件架构·mcu中断·exti外设·启动文件分析