首页 > 其他分享 >基于HAL库的按键输入实验

基于HAL库的按键输入实验

时间:2024-08-30 19:57:34浏览次数:4  
标签:HAL LED STM32 实验 按键 GPIO 输入

一、实验目的:

1.了解STM32固件库;

2.掌握STM32固件库关键子目录及固件库关键文件;

3.能够新建一个基于标准固件库的工程模板并完成编译;

4.通过按键控制LED亮灭的实验掌握库函数的调用方法、端口的配置方法、程序执行流程,并体验到程序控制的实际效果。

二、实验器材:

安装有keli和STM32软件的笔记本或电脑。

三、实验内容:

使用keli和STM32软件实现基于HAL库的通过按键控制LED灯实验

    1.使用STM32配置STM32F103RT6芯片

2.将STM32生成的main.c文件在keil软件中修改,编译。

3.设置符合芯片的各项设置,烧入硬件芯片。

4.硬件板插入12v电,打开开关。按下按键LED灯亮起。

四、实验过程及结果截图 

(一)新建STM32文件。

1.选择STM32F103RT6芯片。

2.查找芯片核心板模块,输出低电平有效。

3.点击对应的引脚,选择GPIO_output,选择要用到引脚。

4.配置系统调试接口。

5. 配置项目,输入项目名称,Application Structure 选择Basic,IDE选择MDK 5。

(二)创建完成并用keil打开。

1.打开main.c 。

2.在main函数里面找到while循环,在循环体内部按键控制LED的代码K1=HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_4);

if(K1 == 1)

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2,GPIO_PIN_SET);

else

HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2,GPIO_PIN_RESET);

  1. 实验结果

五、心得体会

在进行基于HAL库的按键输入实验中,我深刻体会到了嵌入式系统的魅力和实用性。通过这次实验,我对STM32微控制器的GPIO(通用输入输出)功能有了更深入的了解,并掌握了使用HAL库进行硬件操作的方法。

按键输入的原理:通过按键控制LED是一种常见的LED显示效果,通过控制一组LED灯的亮灭,使得它们能够点亮,。在实验中,我通过编写程序,实现了按键控制LED,这让我对LED的工作原理和控制系统有了更直观的认识。

通过这次基于HAL库的按键输入实验,我不仅掌握了STM32的GPIO功能,还提高了自己的编程能力和问题解决能力。学会编写按键控制LED程序。通过对GPIO引脚状态的判断和处理,实现按键实现LED灯的亮灭效果。这次实践让我更加熟悉了编程,提高了我的编程能力。这对于我今后进行更复杂的嵌入式系统开发具有很大的帮助。

标签:HAL,LED,STM32,实验,按键,GPIO,输入
From: https://blog.csdn.net/m0_65619954/article/details/141550319

相关文章

  • 基于HAL库的流水灯设计实验
    实验报告原件(包括实验结果视频)在资源可选择性下载一、实验目的:1.了解STM32固件库;2.掌握STM32固件库关键子目录及固件库关键文件;3.能够新建一个基于标准固件库的工程模板并完成编译;4.通过LED的闪烁实验掌握库函数的调用方法、端口的配置方法、程序执行流程,并体验到程序控制......
  • C++ 快速输入的优化与缓冲区管理(竞赛必用)
    在编程竞赛和性能敏感的场景中,数据输入的效率往往直接影响到程序的运行速度。为了优化输入操作,我们可以通过手动设定缓冲区的方式来提升输入的速度。本文将详细介绍两种不同的快速输入方案:手动设定缓冲区大小的方案与系统默认缓冲区大小的方案,并结合二进制位数与可表示数据范围......
  • 【CSP】坐标变换2(问题拆解,快速输入,知识补充)
    1.题目背景与任务分析题目背景本题要求对二维平面上的点进行指定角度的旋转,并输出旋转后的坐标,要求精确到小数点后六位。这类题目广泛用于考察选手对数学计算、坐标变换以及编程语言中浮点数处理的能力。任务明确输入:多个坐标点及旋转角度。输出:旋转后的新坐标,精确到小数......
  • 关于java输入字符串的一些问题
    最近自学java,学到了Scanner类这块,我想着测试一下输入,遇到了个问题,我想要输入两个字符串,但是我输入一个字符串后程序就停止运行了,有点疑惑,我的代码如下s1=scan.next();System.out.print(s1);s2=scan.nextLine();System.out.print(s2);结果就是只能输出s1,然后我就想起来这......
  • 在odoo中fetchall() 和 dictfetchall()的区别
    1.简介在Odoo中,执行SQL查询后可以使用 fetchall() 或 dictfetchall() 方法来获取查询结果。fetchall() 返回的是一个包含元组的列表,而 dictfetchall() 返回的是一个包含字典的列表。两者的主要区别在于数据访问的方式:fetchall() 通过索引访问数据,而 dictfetchall() ......
  • 【STM32】STM32F1基本定时器(HAL库)
    00.目录文章目录00.目录01.STM32概述02.定时器分类03.基本定时器框图①时钟源②计数器时钟③计数器④自动重装载寄存器定时时间的计算04.定时器计数模式及溢出条件05.附录01.STM32概述STM32是一款由意法半导体(STMicroelectronics,简称ST)公司制造的微控......
  • Datawhale X 李宏毅苹果书AI夏令营深度学习进阶(二)
    一.动量法在上一个博客中,我们提到了动量法,现在继续补充如图所示,红色表示负梯度方向,蓝色虚线表示前一步的方向,蓝色实线表示真实的移动量。一开始没有前一次更新的方向,完全按照梯度给指示往右移动参数。负梯度方向跟前一步移动的方向加起来,得到往右走的方向。一般梯度下降走到一......
  • Datawhale X 李宏毅苹果书(入门) AI夏令营 task02笔记
    官方学习文档:https://linklearner.com/activity/16/14/55往期task01链接:https://mp.csdn.net/mp_blog/creation/editor/141535616李宏毅老师对应视频课程可供食用:https://www.bilibili.com/video/BV1JA411c7VT/?p=3机器学习基础线性模型        w跟b的值上期ta......
  • Datawhale X 李宏毅苹果书(入门) AI夏令营 task01笔记
    官方学习链接:https://linklearner.com/activity/16/14/42机器学习基础导读        通俗来讲,机器学习就是让机器具备找一个函数的能力。这里指的“找一个函数”,指的是找一个能够描述一个场景数学规律的函数模型,具体方法大致是:让机器运行算法,通过输入的数据,确定合适的......
  • 【Datawhale AI 夏令营2024--CV】Task2 阅读小结与尝试
    一、阅读小结        yolo不仅要识别物体的种类还要识别物体的位置1.1、物体检测介绍:1.输入:照片可以利用opencv来提取照片的每一帧,在循环下对视频中每一帧的照片进行处理cap=cv2.VideoCapture(video_path)whileTrue:ret,frame=cap.read()......