stm32之GPIO(二)
输入上拉:当IO口作为输入时,比如按键输入,而按键是与地连接,按下时为低电平,则没按下时该IO口应为高电平,上拉即是该IO口通过一个电阻与电源相连,则没按下时为高电平,按下即为低电平。
输入下拉:同理此时按键与电源相连,按下即为高电平,下拉就是该IO口通过一个电阻与地相连,没按下为低电平,按下为高电平。
推挽输出:作为普通的IO口输出高低电平
STM32的输入输出管脚有下面8种可能的配置:(4输入、2输出、2复用输出)
1、浮空输入_IN_FLOATING
2、带上拉输入_IPU
3、带下拉输入_IPD
4、模拟输入_AIN
5、开漏输出_OUT_OD
6、推挽输出_OUT_PP
7、复用功能的推挽输出_AF_PP
8、复用功能的开漏输出_AF_OD
上拉:输入高电平,然后接一个上拉电阻(起保护作用),上拉就表示该端口在默认情况下输入为高电平;
浮空:就相当于此端口在默认情况下什么都不接,呈高阻态;
开漏输出:就是不输出电压,低电平时接地,高电平时不接地。如果外接上拉电阻,则在输出高电平时电压会拉到上拉电阻的电压电压。这种方式适合在连接的外设电压比单片机电压低的时候;
推挽输出:就是单片机引脚可以直接输出高电平电压,低电平时接地,高电平时输出单片机电源电压。这种方式可以不接上上拉电阻。但如果输出端可以会接地的话,这个时候输出高电平可能引发单片机运行不稳定,甚至可能烧坏引脚;
在stm32中如何配置片内外设使用的IO端口:
首先:
1、配置输入的时钟和初始化后即被激活(开启);
2、如果使用该外设的输入输出管脚,则需要配置相应的GPIO端口(否则该外设对应的输入输出可以做普通GPIO管脚使用)
3、再对外设进行详细设置。
对应到外设的输入输出功能有下面三种情况:
1、外设对应的管脚为输出:需要根据外围电路的配置选择对应的管脚为复用功能的推挽输出或复用功能的开漏输出;
2、外设对应的管脚为输入:则根据外围电路的配置可以选择浮空输入、带上拉输入或带下拉输入;
3、ADC对应的管脚:配置管脚为模拟输入;
如果把端口配置成复用输出功能,则引脚和输出寄存器断开,并和片上外设的输出信号连接,将管脚配置成输出功能后,如果外设没有被激活,那么它的输出将不确定;
上拉电阻的目的是为了保证在无信号输入时输入端的电平为高电平。而在信号输入为低电平是输入端的电平应该也为低电平。如果没有上拉电阻,在没有外界输入的情况下输入端是悬空的,它的电平是未知的无法保证的,上拉电阻就是为了保证无信号输入时输入端的电平为高电平,同样还有下拉电阻它是为了保证无信号输入时输入端的电平为低电平。 这是上拉电阻和下拉电阻的作用!所以你在这里设置时!是没有多大的区别的!
八种模式:
(1)GPIO_Mode_AIN 模拟输入 //一般用在ADC上
(2)GPIO_Mode_IN_FLOATING 浮空输入 //高低电平不确定,一般用在数据传输,读取电平高低
(3)GPIO_Mode_IPD 下拉输入 //默认低电平,接下拉电阻
(4)GPIO_Mode_IPU 上拉输入 //默认高电平,接上拉电阻
(5)GPIO_Mode_Out_OD 开漏输出 //若接上拉电阻,为高电平,否则为低电平。吸电流能力强。实现IIC的线与,还可以通过改变上拉电阻改变输出电平。
(6)GPIO_Mode_Out_PP 推挽输出 //可输出高低电平
(7)GPIO_Mode_AF_OD 复用开漏输出 //可开启第二功能的开漏
(8)GPIO_Mode_AF_PP 复用推挽输出 //可开启第二功能的推挽
stm32之GPIO(二)的更多相关文章
- STM32的GPIO口的输出开漏输出和推挽输出
本文来自cairang45的博客,讲述了STM32的GPIO口的输出开漏输出和推挽输出, 作者博客:http://blog.ednchina.com/cairang45 本文来自: 高校自动化网(Ww ...
- stm32定时器学习二——PWM设置
/* STM32 嵌入式学习入门(5)——PWM的实现 上一篇博文介绍了定时器和PWM的基本的原理,本篇博文从代码层面来介绍PWM的具体实现.同样,还是以博主所用的开发板——正点原子开发板STM32F ...
- STM32学习笔记(二) 基于STM32-GPIO的流水灯实现
学会了如何新建一个工程模板,下面就要开始动手实践了.像c/c++中经典的入门代码"hello world"一样,流水灯作为最简单的硬件设备在单片机领域也是入门首推.如果你已经有了一 ...
- STM32的GPIO使用的函数剖析
转载http://blog.csdn.net/wuwuhuizheyisheng/article/details/8239599 STM32的GPIO总结 作者:JCY 该文是自己学习了一段STM32 ...
- Stm32高级定时器(二)
Stm32高级定时器(二) 1 主从模式:主?从? 谈论主从,可知至少有两个以上的触发或者驱动信号,stm32内部有多个定时器,可以相互之间驱动或者控制. 主模式:定时器使能只受驱动时钟控制或者输出控 ...
- STM32配置GPIO前须先打开其时钟,否则配置失败
@2018-5-9 17:11:38 STM32配置GPIO前须先打开其时钟,否则配置失败
- STM32 F4 GPIO Modes
STM32 F4 GPIO Modes Goal: creating a visual summary of GPIO configuration modes. The summary at the ...
- STM32的GPIO工作原理 | 附电路图详细分析
STM32的GPIO介绍 STM32引脚说明 GPIO是通用输入/输出端口的简称,是STM32可控制的引脚.GPIO的引脚与外部硬件设备连接,可实现与外部通讯.控制外部硬件或者采集外部硬件数据的功能. ...
- 【转载】stm32的GPIO八种工作模式
一.推挽输出:可以输出高.低电平,连接数字器件:推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止.高低电平由IC的电源决定. 推挽电路是两个参数 ...
随机推荐
- VS2015+MySql EF的配置问题
自己做笔记,防止以后各种找! 去MySql下载最新版的安装包,MySql For Windows全部就可以了,根据开发需求安装功能,然后安装MySql的步骤上网去找一大堆. 注意事项: 第一:必须把V ...
- Js闭包与循环
目标:点击任何一个li,提示当前点击位置 <ul> <li>第1个</li> <li>第2个</li> <li>第3个</ ...
- jvm监控命令介绍
1.jstack介绍 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在 ...
- BZOJ 1602: [Usaco2008 Oct]牧场行走( 最短路 )
一棵树..或许用LCA比较好吧...但是我懒...写了个dijkstra也过了.. ---------------------------------------------------------- ...
- BZOJ 1996: [Hnoi2010]chorus 合唱队(dp)
简单的dp题..不能更水了.. --------------------------------------------------------------- #include<cstdio&g ...
- IDEA 15 社区版 Maven项目 启动Tomcat调试
1.在pom下添加Tomcat插件: <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifac ...
- C#实现阻止关闭显示器和系统待机
原文http://www.cnblogs.com/TianFang/archive/2012/10/12/2721883.html 最近写了一个下载程序,发现有一个问题:挂机下载的时候,下载任务会因为 ...
- 【浏览器那些基础】Android平台有那些CPU类型
在编译Android应用的时候,需要配置支持的CPU类型,而目前Android支持的CPU类型包含了ARM和X86,所以在编译前需要指定CPU类型(不同的cpu的特性不一样): X86系列的 expo ...
- HDOJ 1429 胜利大逃亡(续) (bfs+状态压缩)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1429 思路分析:题目要求找出最短的逃亡路径,但是与一般的问题不同,该问题增加了门与钥匙约束条件: 考虑 ...
- Bitmap recycle()
Bitmap调用recycle? When? Bitmap有一个recycle方法,意思非常easy,回收Bitmap的空间. Q 1: Bitmap是否有调用recycle方法的必要性? A: 嵌入 ...