文档章节

stm32笔记:GPIO的的配置和操作(2)引脚输入之查询按键

 卤煮小鱼
发布于 2016/04/14 22:30
字数 204
阅读 238
收藏 1


(1)将PB9管脚配置成输入模式

配置初始化代码


void KEY_GPIO_Config(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
  //GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  //输入模式时是不需要对输出速率进行配置的,及时配置也会被编译器忽略
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //上拉输入
  GPIO_Init(GPIOB, &GPIO_InitStructure);
}
简单粗暴的使用方法



if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_9) == 0)  //检测USR键是否按下
    {
       Delay_ms(10);//延时 
      if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)==0)
       {
        while(GPIO_ReadInputBit(GPIOB,GPIO_Pin_9)==0);   GPIO_SetBits(GPIOC, GPIO_Pin_6);
       } }
else
    {
    
    }

温柔的做法


#define KEY_ON  0
#define KEY_OFF 1

u8 Key_Scan(GPIO_TypeDef* GPIOx,u16 GPIO_Pin)
{
  if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin)==KEY_ON)
  {
       Delay_ms(10);//延时 
      if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin)==KEY_ON)
       {
        while(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin)==KEY_ON);//等待释放
        return KEY_ON;
       }
       else
       {
        return KEY_OFF;
       }
    }
   else return KEY_OFF;
}











© 著作权归作者所有

粉丝 0
博文 15
码字总数 7973
作品 0
松江
私信 提问
使用STM32GPIO读取按键实现按键操作(STM32_08)

一、开发板按键设置 在"STM32-PZ6806L"开发板上除了复位按键外,还设计了4个按键,分别标为"UP"、"DOWN"、"LEFT"和"RIGHT",其电路如下: 根据电路连接得知KUP按键一端与GPIOA0连接,另一端通......

fanxp66
2018/05/11
0
0
STM32学习笔记(7)——USART串口的使用

1、 串口的基本概念 在STM32的参考手册中,串口被描述成通用同步异步收发器(USART),它提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART利用...

葫芦娃的后桌
2018/08/09
0
0
stm32的IO模式说明

一、推挽输出:可以输出高、低电平,连接数字器件;推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源决定。 推挽电路是两个...

peng_258
2017/10/24
0
0
STM32GPIO外部中断总结

1 STM32中断分组 STM32 的每一个GPIO都能配置成一个外部中断触发源,这点也是 STM32 的强大之处。STM32 通过根据引脚的序号不同将众多中断触发源分成不同的组,比如:PA0,PB0,PC0,PD0,P...

dp29sym41zygndvf
2017/12/17
0
0
STM32学习笔记-点亮第一个led

首先感谢河北科技大学航模协会-能给我这样的学习机会-感谢那些带我们教我们的学长学姐们. 点亮第一个led灯之前要先大概了解一下单片机的工作方式并且有一定的编程基础,能看懂程序 单片机上有...

qq_18984151
2018/03/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java 8 Optional:优雅地避免 NPE

本篇文章将详细介绍 Optional 类,以及如何用它消除代码中的 null 检查。在开始之前首先来看下什么是 NPE,以及在 Java 8 之前是如何处理 NPE 问题的。 空指针异常(NullPointException,简称...

武培轩
30分钟前
7
0
CountDownLatch实现的并发框架

目录结构 package com.**.**.base.support.executor;import lombok.NoArgsConstructor;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;imp......

MR_TE
31分钟前
11
0
学习记录(day06-事件、按键修饰符、计算属性)

[TOC] 1.1 事件修饰符/按键修饰符 vue 通过事件修饰符对dom事件细节进行控制 <标签 @事件.修饰符="函数"></标签>.prevent ---阻止浏览器默认行为.stop ---阻止浏览器事件冒泡.e...

庭前云落
51分钟前
9
0
006-Sigle-基于blockstack去中心化博客

本篇文章主要讲解有关基于Blockstack的Sigle是一个去中心化的博客项目; 官网地址:https://www.sigle.io/ Github地址:https://github.com/pradel/sigle 页面展示: 介绍: A beautiful de...

Riverzhou
58分钟前
22
0
驰骋工作流引擎开发平台属性功能的隐藏显示介绍

关键字: 工作流程管理系统 工作流引擎 asp.net工作流引擎 java工作流引擎. 表单引擎 工作流功能说明 工作流设计 工作流快速开发平台 业务流程管理 bpm工作流系统 java工作流主流框架 自定义...

孟娟
今天
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部