①【蓝桥杯】STM32G4嵌入式竞赛实训平台(CT117E 您所在的位置:网站首页 蓝桥杯训练平台 ①【蓝桥杯】STM32G4嵌入式竞赛实训平台(CT117E

①【蓝桥杯】STM32G4嵌入式竞赛实训平台(CT117E

2023-07-28 03:28| 来源: 网络整理| 查看: 265

写在前面——

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

目录

硬件平台

软件平台

按键原理图 

配置过程 

编写函数 

硬件平台

        嵌入式竞赛实训平台(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函数中添加想要的功能即可



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有