以STM32的芯片为例:
STM32芯片的IO有8中模式:

(1)GPIO_Mode_AIN 模拟输入

(2)GPIO_Mode_IN_FLOATING 浮空输入

(3)GPIO_Mode_IPD 下拉输入

(4)GPIO_Mode_IPU 上拉输入

(5)GPIO_Mode_Out_OD 开漏输出

(6)GPIO_Mode_Out_PP 推挽输出

(7)GPIO_Mode_AF_OD 复用开漏输出

(8)GPIO_Mode_AF_PP 复用推挽输出
四种输入模式 + 四种输出模式

1.GPIO_Mode_AIN 模拟输入
这个模式比较好理解,主要用于模拟输入时的配置(一般是针对ADC功能)。在特殊DAC输出的时候也用该模式,参看手册:

2.GPIO_Mode_IN_FLOATING 浮空输入
浮空顾名思义就是悬浮在空中,也叫悬空输入。配置成浮空输入模式,如果没有连接其他设备,检测其电平是不定的,有可能检测到高电平,也有可能坚持到低电平。

3.GPIO_Mode_IPD、GPIO_Mode_IPU上下拉
GPIO_Mode_IPD下拉 和 GPIO_Mode_IPU上拉模式应该大家都明白它的意思,它们和浮空输入是成对应关系。

A.上拉或下拉电阻阻值?

有些时候,了解到阻值的大小有助于硬件的设计,以及软件的编程,阻值大小一般是40K左右,具体可以参看数据手册:

B.疑问

有的人会有这样的疑问,为什么没有输出下拉?或输出上拉?

答案其实很简单,在该系统中,MCU起到主要作用,输出的电平是由MCU决定,要么是高电平,要么是低电平。

4.GPIO_Mode_Out_OD 开漏输出
开漏输出这个功能是比较重要的,也是相对比较难一点的(当然,明白了就觉得简单)。或许我们平时没怎么使用过该功能,并不知道它具体的用途,就没有多去了解它。

开漏输出大致意思:设置引脚输出为“1”时,该引脚处于开漏,也就是相当于浮空状态; 设置引脚输出为“0”时,该引脚将拉低电平。

I2C读写EEPROM里面I2C总线的SDA引脚就使用了开漏输出功能。应该再说一下SDA设置为开漏输出,是因为I2c总线有上拉电阻。也就是需要在释放SDA总线时,只需要将SDA设置输出为“1”就行了。

5.GPIO_Mode_Out_PP 推挽输出
推挽输出:意思就是输出具有驱动能力(比如:引脚上接一个LED,可以直接点亮,若是开漏输出,就不能点亮LED)。

推挽输出这个功能是比较常用的功能,我们一般输出控制某个信号,基本上都是配置为GPIO_Mode_Out_PP 推挽输出。

推挽输出电流大小也是比较关键的一个参数,根据芯片不同,其大小也不同,具体可以查看数据手册:

6.GPIO_Mode_AF_OD 复用开漏输出
复用开漏输出:该模式和上面“GPIO_Mode_Out_OD开漏输出”类似,只是它引脚对应的功能具有复用的功能。前面文章【硬件I2C读写EEPROM】里面就是使用了该功能。

7.GPIO_Mode_AF_PP 复用推挽输出
复用推挽输出功能和推完功能类似,主要用在具有复用功能的情况下,比如USART的TX引脚等。

IO口输入输出各个模式相关推荐

  1. 汇编语言单片机c51基本i/o输入输出实验报告,实验二i-o口输入输出实验报告.doc...

    实验二i-o口输入输出实验报告 单片机实验报告 2 姓名 徐伟彬 学号 1215111035 时间 地点 实验题目 I/O口输入.输出实验 一.实验目的 1. 学习I/O口的使用方法. 2. 学习延时 ...

  2. 32位芯片IO口的工作模式详解

    目录: 一.IO口基本信息 二.IO口的寄存器 三.IO口对应不同配置的基本结构 四.IO口的不同配置简介 4.1推挽输出 4.2.开漏输出 4.3.浮空输入 4.4.在 STM32 中选用 IO 模 ...

  3. 51单片机IO口输入输出方式

    传统51单片机IO接口只可以作为标准双向IO接口,如果用其来驱动LED只能用灌电流的方式或是用三极管外扩驱动电路. 灌电流方式:LED正极接VCC,负极接IO口.IO为高电平是LED两极电平相同,没有 ...

  4. STC15单片机读写大容量SD卡(IO口模拟SPI模式)

    使用的芯片是STC15系列的IAP15F2K61S2,开发板是51的xl2000.把芯片座上的51芯片拔掉换成STC的,混合模式.(配置够低吧) 源码由51开发板例程的实验26修改而来. 浏览了网上的 ...

  5. 关于单片机IO口输入输出的理解!

    解释一: 单片机的 IO 口 (输入/输出 口),是相对单片机 本身 而言的, 就是单片机IO口往外输出信号1或者0( 1 的输出电圧 = VCC , 0 的电圧 = 0 V ) 或者 单片机从 IO ...

  6. io口输入输出实验程序c语言,【51单片机】普通I/O口模拟SPI口C语言程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 89C51系列单片机都不带SPI口,所在在这种情况下,我们可以模拟SPI口来现实我们要的功能,程序如下: //---------------------- ...

  7. STM32 寄存器控制IO口输入输出 ODR IDR

    核心是F103奥 LED0是PB5,LED1是PE5,KEY0是PE4 //.h文件 #define RCC_APB2ENR *(unsigned int*)(0x40021018)//时钟地址 #d ...

  8. STM32 IO口的八种模式

    [冉冰的成长日记007] STM32 的 IO 口可以由软件配置成如下 8 种模式: 1.输入浮空 2.输入上拉 3.输入下拉 4.模拟输入 5.开漏输出 6.推挽输出 7.推挽式复用功能 8.开漏复 ...

  9. ZigBee TI ZStack CC2530 3.10 IO口01-输入输出

    [配套源码.文档.软件.硬件等资源,入口见文末] 一.前言 本博客ZigBee分支关于CC2530的IO口部分的介绍,分为如下三篇文章: 1.ZigBee TI ZStack CC2530 3.9 I ...

最新文章

  1. 到底什么样的程序员能称为架构师?
  2. Android调试的必杀技——反汇编
  3. 工具资源系列之给mac装个虚拟机
  4. 区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新
  5. ci持续集成工程师前景_『中级篇』docker之CI/CD持续集成-项目生成镜像(76)
  6. Mongodb 与sql 语句对照
  7. git clone 拉取github上面的代码报错:fatal: Authentication failed for xxx解决
  8. ENVI5.3sp1下载链接以及安装全过程
  9. 关于echarts图表下载
  10. Windows11下安装MongoDB
  11. Unity技术手册 - 形状(Shape)子模块 - Cone椎体和Box盒及Mesh、MeshRenderer、SkinnedMeshRenderer
  12. C#随机生成姓名、电话类
  13. .Net Core怎么使用Hangfire
  14. 小程序源码:简单舒服新UI装逼制作神器
  15. Java 中的判空操作
  16. delphi res 使用
  17. Java,第一次作业——六边形面积
  18. 这个是可以将得到速查编码的存储过程 如 中国人 可以得到 ZGR
  19. java是面向对象还是面向过程_Java教程分享Java面向对象与面向过程
  20. Java自学教程!java异常实验总结

热门文章

  1. vue爬坑 div中使用v-html,里面的图片溢出问题;
  2. 专注互联网产品的核心价值
  3. [2017年第八届真题] 分巧克力
  4. iqooneo5支持鸿蒙系统吗,标配鸿蒙系统、华为三大旗舰推4G版:或为避免P50芯片短缺...
  5. Prometheus监控 rate与irate的区别
  6. 主题之美,排名靠前的 10 个 VSCode 主题
  7. vue.js---zcc
  8. 面经手册 · 第3篇《HashMap核心知识,扰动函数、负载因子、扩容链表拆分,深度学习》
  9. html设置utf-8编码
  10. arduino使用SPIFlash库 读写Flash芯片