STM32F1笔记(二)GPIO输入
STM32 GPIO输入的经典应用是按键。
先看电路。声明:参考正点原子战舰开发板。
在这里可以看到,KEY_UP按键是高电平有效的,即当按下该按键时,GPIO读到高电平。
KEY0/1/2是低电平有效的,即当按下该按键时,GPIO读到低电平。
而且外部电路都没有上下拉电阻。所以,需要在STM32内部配置上下拉。
上拉就是将不确定的信号通过一个电阻钳位在高电平,电阻同时起限流作用。
下拉同理,也是将不确定的信号通过一个电阻钳位在低电平。
配置程序如下:
void KEY_Init(void) //IO³õʼ»¯
{ GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOE, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_Init(GPIOE, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;GPIO_Init(GPIOA, &GPIO_InitStructure);}
应用程序
#define KEY0 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4)
#define KEY1 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3)
#define KEY2 GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2)
#define WK_UP GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)
按键的应用还需要注意消抖。
经典消抖示意图:
按键消抖通常处理:当检测到按键有效电平后,延时5~10ms,再次判断电平是否有效。
模拟输入经典应用场景为ADC,在后续笔记中进行讲解。
浮空输入比较特殊。当处于浮空输入状态下,IO的电平状态是不确定的(0~VCC之间),完全由外部输入决定。
通常用于低功耗下省电,即将不需要使用的GPIO全部配置为浮空输入模式。
STM32F1笔记(二)GPIO输入相关推荐
- (二)DSP28335基础教程——GPIO输入(矩阵按键扫描)
0 前言 GPIO输入功能是28335非常重要的部分,可通过外部数字逻辑信号的输入,作为逻辑触发控制的判断条件.比如在电机控制中,通过判断输入管脚的电平状态,实现电机调速.在显示屏人机界面下,也可通过 ...
- 学习笔记二.矩阵按键
#学习笔记二:GPIO的探索与矩阵按键 ##1.在配置cubemx时,对gpio的配置有开漏输出和推挽输出两种方式, ###这里有一篇文章(别人的文章)讲的很详细link戳这里跳转 通俗来讲,推挽输出 ...
- qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)
原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...
- oracle直查和call哪个更快,让oracle跑的更快1读书笔记二
当前位置:我的异常网» 数据库 » <>读书笔记二 <>读书笔记二 www.myexceptions.net 网友分享于:2013-08-23 浏览:9次 <> ...
- [转载]dorado学习笔记(二)
原文地址:dorado学习笔记(二)作者:傻掛 ·isFirst, isLast在什么情况下使用?在遍历dataset的时候会用到 ·dorado执行的顺序,首先由jsp发送请求,调用相关的ViewM ...
- tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数
tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报 分类: tensorflow(4) 目录(?)[+] 本笔记目的 ...
- 趣谈网络协议笔记-二(第十七讲)
趣谈网络协议笔记-二(第十七讲) P2P协议:我下小电影,99%急死你 自勉 逃离舒适区! 正文 一. P2P协议 整个篇章讲的就是这两个协议之间的区别.P2P协议就是迅雷下载数据时所用的协议, 众所 ...
- Linux 进阶笔记(二)
这几篇博文主要记录博主的Linux 学习之路,用作以后回顾和参考.大家可以选择略过也可以作参考. (一)Linux 初步笔记 (二)Linux 进阶笔记(一) (三)Linux 进阶笔记(二) (四) ...
- 吴恩达《机器学习》学习笔记二——单变量线性回归
吴恩达<机器学习>学习笔记二--单变量线性回归 一. 模型描述 二. 代价函数 1.代价函数和目标函数的引出 2.代价函数的理解(单变量) 3.代价函数的理解(两个参数) 三. 梯度下降- ...
最新文章
- activeMQ - 消息重发策略和DLQ死信队列
- QIIME 2用户文档. 9数据导入Importing data(2019.7)
- 浏览器用xpath获取一直为空
- 《HTML5 Canvas开发详解》——导读
- JDK、Spring、Dubbo SPI 原理介绍
- css工程化和浏览器兼容性问题
- 祖父元素_帮助祖父母建立Skype帐户的UX经验教训
- react学习(21)---接口加回调显示
- 使用WebService如何实现分布式事务
- redis集群的搭建详细教程
- 外观模式(三层解耦)
- 洛谷P1031 均分纸牌(贪心)
- Chapter 1 First Sight——13
- 三宝小精灵机器人_三宝小精灵机器人
- c/c++语言中常用的math函数
- 几何学的公理化:塔尔斯基 pk 希尔伯特,谁能取胜?
- Dreamweaver DW中清除代码中多余空行的方法(去除空行)
- SCOI2016酱油记
- 信号反射原理及其典型应用
- 这是我见过最完整的Spring全家桶学习笔记,没有之一!
热门文章
- cefsharp 发送请求服务器_超高性能管线式HTTP请求(实践·原理·实现)
- oracle unused用法,set unused的用法(ORACLE刪除字段)
- win7 网络端口怎么设置_教你win7如何设置网络共享文件夹
- 前端常见浏览器兼容性问题及解决办法
- Android killer软件闪退的解决办法?
- 西北大学计算机转专业,西北大学可以转专业吗,西北大学新生转专业政策
- qfp封装能够linux,QFP、PQFP、LQFP、TQFP封装形式及PCB详解
- 2.2 .this的绑定规则
- AngularJS XMLHttpRequest
- 关于HTML的面试题-html5/css3篇