STM32的IO口模式配置

根据数据手册提供的信息,stm32的io口一共有八种模式,他们分别是:

四种输入模式

  1. 上拉输入:通过内部的上拉电阻将一个不确定的信号通过一个电阻拉到高电平。
  2. 下拉输入:把电压拉到GND。与上拉原理相似。
  3. 浮空输入:引脚内部什么都不接,处于浮空模式下,电平状态是不确定的。外部信号输入什么,IO口就是什么状态。
  4. 模拟输入:接收到的是连续的模拟信号,一般用于AD转换。

四种输出模式

  1. 推挽输出:可以输出高低电平,连接数字器件。在stm32中推挽电路由两个MOS管组成:输出高电平时P-MOS管导通,引脚联通VDD(3.3v)。输出低电平时N-MOS导通,引脚联通GND。该方式既提高电路的负载能力,又提高开关速度。
  2. 开漏输出:无法直接输出高电平,要在外部连接上拉电阻才行,输出的电压由上拉电阻连接的电源决定。适合做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)。开漏输出还有一个特性:线与。即很多开漏模式引脚连接在一起,只有当所有引脚都输出1时,才能够被上拉电阻拉到高电平。若有一个引脚为低电平,则所有引脚相当于接地。
  3. 复用推挽输出:简单来说就是给内部外设使用的推挽输出模式,
  4. 复用开漏输出:简单来说就是给内部外设使用的开漏输出模式

在STM32中,根据不同的使用场景,选用不同的IO模式:

  1. GPIO_Mode_AIN: 模拟输入,一般用作模数转换
  2. GPIO_Mode_IN_FLOATING: 浮空输入,常用在key识别上
  3. GPIO_Mode_IPD: 下拉输入--- IO内部下拉电阻输入
  4. GPIO_Mode_IPU:上拉输入--- IO内部上拉电阻输入
  5. GPIO_Mode_Out_OD: 开漏输出---可以外接上拉电阻输出较高的电平,也能够通过读取IO的电平变化实现C51的IO双向功能。
  6. GPIO_Mode_Out_PP: 推挽输出---IO输出0-接GND,IO输出1 -接VCC,读输入值是未知的。
  7. GPIO_Mode_AF_OD:复用开漏输出---片内外设功能(TX1,MOSI,MISO.SCK.SS)。
  8. GPIO_Mode_AF_PP: 复用推挽输出---片内外设功能(I2C的SCL,SDA)。

根据下面的IO结构图可能更有利于理解:

最新文章

  1. (转载) 浅谈python编码处理
  2. 四种比较简单的图像显著性区域特征提取方法原理及实现-----> AC/HC/LC/FT。
  3. 深入学习jQuery的三种常见动画效果
  4. 通过API执行AutoCAD命令来…
  5. Hibernate注解----类级别注解以及属性注解详解----图片版本
  6. iOS 给NSString文字上添加横线 中间和下划线
  7. 51单片机ALE引脚的控制(摘录)
  8. [转]开源那些事儿(四)-如何使用CodePlex进行项目管理
  9. Ubuntu下配置Scheme开发环境
  10. crawler4j:轻量级多线程网络爬虫
  11. Ansj配置指南!
  12. 【网络】 数据链路层&物理层笔记
  13. SSH深度历险(一)深入浅出Hibernate架构(一)-------映射解析——七种映射关系
  14. 【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理
  15. day13-(事务&mvc&反射补充)
  16. G - Intersecting Rectangles Kattis - intersectingrectangles (扫描线)(判断多个矩形相交)
  17. ReactNative学习笔记(二)基础进阶
  18. delphi中接口的委托和聚合
  19. DNS-320 B2 语言包
  20. (21)jq动画

热门文章

  1. 使用reactjs遇到Warning: setState(...): Can only update a mounted or mounting component.
  2. jquery类似方法的比较(三)
  3. 在android真机上使用sqlite3
  4. php 判断变量函数
  5. 遍历DataSet
  6. Feature Toggle JUnit
  7. C# get post 的方法
  8. sql 中如何将返回的记录某一条置顶
  9. 一个不需要Log4Net的写日志的简单方法
  10. 基于linux-2.6.35的class_create(),device_create解析