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

相关推荐
Python小老六6 小时前
单片机寄存器的四种主要类型!
单片机·嵌入式硬件
小赵哦7 小时前
TMS320F28388D使用sysconfig配置IPC
单片机·dsp开发
许有杨10 小时前
智能门禁的项目
单片机·嵌入式硬件
学渣6765611 小时前
vscode开发stm32,main.c文件中出现很多报错影响开发解决日志
c语言·vscode·stm32
Rousson11 小时前
硬件学习笔记--64 MCU的ARM核架构发展及特点
笔记·单片机·学习
即安莉14 小时前
ESP8266远程控制:实现网络通信与设备控制
开发语言·stm32·单片机·嵌入式硬件·php
逼子格15 小时前
硬件工程师笔记——运算放大电路Multisim电路仿真实验汇总
笔记·嵌入式硬件·硬件工程·硬件工程师·滤波器·硬件工程师真题·multisim电路仿真
天天爱吃肉821815 小时前
嵌入式(1):STM32 GPIO与AFIO深度解析:从原理到高阶应用实战
stm32·单片机·嵌入式硬件
百锦再16 小时前
MCU STM32搭配存储SD NAND(贴片式T卡)于智能皮电手环(Galvanic Skin Response, GSR 手环)的全方位评测
stm32·单片机·嵌入式硬件·学习·sd·hand·mk
沉醉不知归路118 小时前
stm32无刷电机控制_滑膜观测器更改电机如何调整?
stm32·单片机·嵌入式硬件