环球微资讯!STM32F407 GPIO口输入配置配置步骤

DS小龙哥-嵌入式技术 2023-07-06 15:24:28


【资料图】

介绍STM32F407新建寄存器工程流程,介绍输入模式的配置方式,以按键为例完成按键输入检测

【1】F407建工程所需依赖文件【2】新建工程【3】分析KEY按键硬件原理图【4】编写KEY按键驱动代码

查看数据手册:

key.c文件代码如下:

#include "key.h" /* 函数功能:按键初始化配置 硬件连接: KEY0 --- >PE4  按下为低电平 KEY1 --- >PE3  按下为低电平 KEY2 --- >PE2  按下为低电平 KEY_UP-- >PA0  按下为高电平 */ void KEY_Init(void) { /*1. 开时钟*/   RCC- >AHB1ENR|=1< <0;//使能PORTA时钟RCC- >AHB1ENR|=1< <4;//使能PORTE时钟    /*2. 配置GPIO口模式*/   GPIOE- >MODER&=~(0x3< <2*2); //清除模式 GPIOE- >MODER|=0x0< <2*2;    //配置输入模式  GPIOE- >MODER&=~(0x3< <3*2); //清除模式 GPIOE- >MODER|=0x0< <3*2;    //配置输入模式  GPIOE- >MODER&=~(0x3< <4*2); //清除模式 GPIOE- >MODER|=0x0< <4*2;    //配置输入模式  GPIOA- >MODER&=~(0x3< <0*2); //清除模式 GPIOA- >MODER|=0x0< <0*2;    //配置输入模式  /*3. 配置GPIO口上下拉模式*/ GPIOE- >PUPDR&=~(0x3< <2*2); //清除之前配置 GPIOE- >PUPDR|=0x1< <2*2;    //配置上拉  GPIOE- >PUPDR&=~(0x3< <3*2); //清除之前配置 GPIOE- >PUPDR|=0x1< <3*2;    //配置上拉  GPIOE- >PUPDR&=~(0x3< <4*2); //清除之前配置 GPIOE- >PUPDR|=0x1< <4*2;    //配置上拉  GPIOA- >PUPDR&=~(0x3< <0*2); //清除之前配置 GPIOA- >PUPDR|=0x2< <0*2;    //配置下拉 } ​ ​ /* 函数功能:扫描按键 函数参数:扫描的模式。1表示连续检测、0只能检测单个按键 返 回 值:按下的按键值1、2、3、4           返回0表示按键没有按下 */ u8 ScanKeyVal(u8 mode) { staticu8 stat=0; //保存按键按下的状态 if(mode)stat=0;   //手动清除按键按下标志 if((KEY_UP||KEY0==0||KEY1==0||KEY2==0)&&stat==0) { stat=1;      //标记按键已经按下了 DelayMs(20); //延时消抖 if(KEY_UP) return 4; if(KEY0==0)return 1; if(KEY1==0)return 2; if(KEY2==0)return 3; } else {   if(KEY_UP==0&&KEY0&&KEY1&&KEY2)stat=0; //清除按键按下标志 } return 0; } ​

key.h代码如下

#ifndef _KEY_H #define _KEY_H #include "stm32f4xx.h" #include "delay.h" void KEY_Init(void); u8 ScanKeyVal(u8 mode); #define KEY0  (!!(GPIOE- >IDR&1< <4)) #define KEY1  (!!(GPIOE- >IDR&1< <3)) #define KEY2  (!!(GPIOE- >IDR&1< <2)) #define KEY_UP (!!(GPIOA- >IDR&1< <0)) #endif ​

Main.c代码如下

#include "stm32f4xx.h" // Device header #include "led.h" #include "delay.h" #include "key.h" ​ int main(void) { u8 key,i; LED_Init(); KEY_Init(); while(1) {  key=ScanKeyVal(0);  if(key)  {   i=!i; LED0(i);   LED1(i); BEEP(i);  } } } ​
【5】编译代码 配置下载

审核编辑:汤梓红

x

热门推荐

航空市场逐渐回暖 机票均价环比涨幅明显

2022-06

海南推动农贸市场全面落实禁塑 加强违禁塑料制品源头治理

2021-12

柴犬登登拍卖记:动物是如何被司法拍卖的

2021-12

江西:到2025年鄱阳湖区断面水质优良比例达到50%以上

2021-12

西藏森林消防:锻造雪域救援尖兵 打造高海拔山岳救援队伍

2021-12

加强人才融通发展 第10届海峡两岸水利青年工程交流营成功举办

2021-12

四川:空手夺刀救人的“95后”女民警捐献万元奖金传递爱心

2021-12

中国食品名市临沂坚持“三化融合” 争做“食安”守望者

2021-12

上海闵行一幼儿园教职工殴打幼儿 2名涉事人员已被行拘

2021-12

受贿1414万元 江西万载县委原书记胡全顺获刑11年6个月

2021-12

推荐阅读

环球微资讯!STM32F407 GPIO口输入配置配置步骤

2023-07

商汤科技多款AI大模型亮相世界人工智能大会

2023-07

华为鸿蒙4.0定档:7月7日正式亮相_焦点精选

2023-07

时间是成功的密匙,掌握好时间,每个孩子都有机会成为学霸 天天讯息

2023-07

愿世界杯温暖所有的等待——写在中国女足出征前_世界消息

2023-07

重点聚焦!午评:沪指跌0.53%回落至3200点附近,CPO、PCB概念等较为活跃

2023-07

如何解决绝地求生蓝屏死机

2023-07

g300s鼠标怎么设置(g300)_速看

2023-07

长安汽车王俊:中国汽车产业面临五大挑战 世界快播

2023-07

这国央行又卖出27吨黄金!中国央行再增持19吨 为连续第7个月购买

2023-07