①【蓝桥杯】STM32G4嵌入式竞赛实训平台(CT117E-M4)学习——按键

news/2024/10/26 11:16:11/

写在前面——

        由于众所周知的原因,我们封校了,和舍友们在宿舍里开始上网课,有这一段宝贵的时光也属实难得。前段时间报名了蓝桥杯嵌入式的比赛,虽然自己学的很菜,但还是想努力一下,把备赛的过程和比赛的过程都当作一个学习的过程吧!一边学习蓝桥杯的基础知识,一边写成一下几篇博客,权当这博客就是学习的笔记。有时间回头来看看,毕竟这是个人的第一篇正式的博客。

目录

硬件平台

软件平台

按键原理图 

配置过程 

编写函数 


硬件平台

        嵌入式竞赛实训平台(CT117E-M4)是北京国信长天科技有限公司设计、生产的一款“蓝桥杯全国软件与信息技术专业人才大赛–嵌入式设计与开发科目”专用竞赛平台,平台STM32G431RBT6为主控芯片,预留扩展板接口,可为用户提供丰富的实验场景

CT117E-M4产片图片

软件平台

        KEIL5,STM32CubeMX 

按键原理图 

        本文主要介绍硬件平台上按键的使用,板子上共有5个按键,最左边一列,最上边是复位按键,用户可编程的按键是下面4个(原理图如下),分别为B1,B2,B3,B4,其分别与以下IO口对应PB0,PB1,PB2,PA0

配置过程 

通过分析可知,我们应该将这四个IO口配置为输入模式:

         GPIO的初始化配置我们通过CubeMX一键生成即可,以下代码是我认为比较简单实用的:

编写函数 

①按键扫描函数

uint8_t Key_Scan(void) //按键扫描函数
{   if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_0) == 0) //PB0 (按键B1)被按下{HAL_Delay(10);//延时消抖if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_0) == 0){while(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_0) == 0); //等待按键抬起return 1;//返回1}}if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_1) == 0) //PB1 (按键B2)被按下{HAL_Delay(10);//延时消抖if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_1) == 0){while(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_1) == 0); //等待按键抬起return 2;//返回2}}if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_2) == 0) //PB2 (按键B3)被按下{HAL_Delay(10);//延时消抖if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_2) == 0){while(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_2) == 0); //等待按键抬起return 3; //返回3}}if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) == 0) //PA0 (按键B4)被按下{HAL_Delay(10);//延时消抖if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) == 0){while(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) == 0); //等待按键抬起return 4; //返回4}}return 0; //没有按键按下返回0
}

②主函数中这样编写

	uint8_t Key_Value = 0;Key_Value = Key_Scan();if(Key_Value == 1) //按键B1被按下{}if(Key_Value == 2) //按键B2被按下{}if(Key_Value == 3) //按键B3被按下{}if(Key_Value == 4) //按键B4被按下{}

if函数中添加想要的功能即可


http://www.ppmy.cn/news/527937.html

相关文章

蓝桥杯嵌入式CT117E-M4学习笔记02-STM32G431RBT6芯片学习

文章目录 前言一、芯片简介二、时钟学习三、SRAM学习四、总线矩阵学习五、GPIO学习总结 前言 首先学习了解一下蓝桥杯嵌入式CT117E-M4开发板的主控芯片STM32G431RBT6,本文仅为个人学习成果总结,如有错误,恳请指正。 一、芯片简介 上图为STM…

蓝桥杯嵌入式CT117E-M4学习笔记06-LED灯实验

文章目录 前言一、实验原理二、配置步骤三、LED灯闪烁四、LED流水灯总结 前言 经过前面几个笔记的学习,我们已经了解了蓝桥杯嵌入式的比赛大纲,了解了STM32G431芯片的基本信息,以及开发环境的配置,接下来就可以针对开发板来进行学…

蓝桥杯嵌入式CT117E-M4学习笔记01-竞赛大纲

文章目录 前言一、蓝桥杯嵌入式竞赛大纲1.参赛资格2.竞赛用时3.竞赛形式4.试题形式5. 赛场设备设施6. 试题涉及的基础知识7. 分值比例8. 评分 总结&报名链接 前言 本人为电子信息专业大四应届毕业生,参加过各式各样的学科类竞赛,这还是第一次参加蓝…

Spring Boot中使用thymeleaf以及各种取值,判断,选择,截取等方式

Spring Boot中使用thymeleaf Spring Boot支持FreeMarker、Groovy、Thymeleaf和Mustache四种模板解析引擎&#xff0c;官方推荐使用Thymeleaf。 spring-boot-starter-thymeleaf 在Spring Boot中使用Thymeleaf只需在pom中加入Thymeleaf的starter即可&#xff1a; <depende…

HarmonyOS学习路之开发篇—多媒体开发(媒体数据管理开发)

一、媒体数据管理开发概述 HarmonyOS媒体数据管理模块支持多媒体数据管理相关的功能开发&#xff0c;常见操作如&#xff1a;获取媒体元数据、截取帧数据等。 在进行应用的开发前&#xff0c;开发者应了解以下基本概念&#xff1a; PixelMap PixelMap是图像解码后无压缩的位…

MinGW最新版本下载

转载 https://blog.csdn.net/liuzehn/article/details/106501376 一、MinGW下载地址&#xff1a; https://sourceforge.net/projects/mingw/files/?sourcenavbar 二、点击下载最新版本&#xff0c;下图已经圈出。 到时间后&#xff0c;浏览器自动下载 三、右键管理员权限运…