当前位置: 首页 > ops >正文

单片机基础(STM32-DAY2(GPIO))

什么是GPIO?

GPIO 全称是 General Purpose Input/Output,即通用输入输出端口。

是单片机/微控制器上最基础、最常用的功能模块之一。

每个GPIO引脚都可以被配置为输入或输出,用于与外部世界进行数字信号的交互。

1.GPIO框架图

通用框图F1系列:

1.1 解释图中一些元器件

这一部分不懂很正常,搭配后面的操作看。

引脚:引脚就是单片机芯片上我们常见的四周的小金属,像单片机的脚一样,是单片机和外设进行交流的通道

单片机片内外设:集成在单片机芯片内部的各种功能模块,图中引脚左边的输入输出功能都是单片机内部处理的,所以引脚以左就是单片机内部

Vcc:接入电路的电压

Vdd:元器件内部的工作电压

Vss:公共接地端电压

保护二极管:单向的二极管,配合VDD和VSS保证电流控制在有效电压范围

上拉电阻:就是电阻,防止电流太大

施密特触发器:把不稳定的电信号波整型成电路能处理的方波波型,如图

输出控制:输出控制内有一个反向器,把低电平转换成高电平,高电平转换成低电平

P型MOS管(PMOS):输出数据寄存器输出‘0’-------》输出控制把‘0’转换成 ‘1’-----》NMOS管打开 输出低电平

N型MOS管(NMOS):输出数据寄存器输出‘1’-------》输出控制把‘1’转换成 ‘0’-----》NMOS管打开 输出高电平

2.工作模式

1.输入模式

1.1. 浮空输入(Floating Input)
概念

(1) I/O引脚没有连接上拉或下拉电阻,也没有外部信号输入。(就是上拉电阻和下拉电阻处的开关都没有联通,直接存取。这个时候信号很容易不稳定)

(2) 引脚电平不确定,容易受外界干扰,可能随机跳变高低电平。

特点

(1) 高阻抗状态,对外部电路几乎没有影响。

(2) 不推荐将引脚长期设为浮空输入,容易引起误动作或功耗增加。

应用

(1) 仅在有外部信号源(如按键、传感器)时使用。

(2) 不建议悬空不用的引脚设为浮空输入。

1.2. 上拉输入(Pull-up Input)
概念

(1) I/O引脚内部或外部连接一个上拉电阻到Vdd(高电平)。

(2) 当没有外部信号时,电阻会把引脚电平拉到高电平。(相当于上面接一个电源,持续联通单片机内部,输入高电平Vdd)

特点

(1) 防止引脚悬空,默认高电平。

(2) 常用于按键检测(按下为低,松开为高)、I²C等场合。

应用

(1) 按键输入(常开按键一端接地)

(2) I²C总线

(3) 需要默认高电平的输入

1.3. 下拉输入(Pull-down Input)
概念

(1) I/O引脚内部或外部连接一个下拉电阻到GND(低电平)。

(2) 当没有外部信号时,电阻会把引脚电平拉到低电平。(外部没有信号的时候,内接Vss低电压,保持低电平)

特点

(1) 防止引脚悬空,默认低电平。

(2) 用于需要默认低电平的输入场合。

应用

(1) 按键输入(常闭按键一端接Vcc,较少用)

(2) 需要默认低电平的输入

1.4. 模拟输入(Analog Input)
概念

I/O引脚连接到ADC(模数转换器)模块,用于采集外部的连续模拟信号(如电压、电流、传感器输出等)。

特点

(1) 输入信号是连续的电压值,不是单纯的高低电平。

(2) 不能配置为上拉/下拉/浮空,通常为高阻抗输入。

应用

(1) 采集温度、光照、音频等模拟信号(因为信号不只是单纯的高低电平,而是要显示具体数据,需要直接采集复杂的电信号)

(2) 电位器、传感器等模拟量输入

2.输出模式

2.1. 推挽输出(Push-Pull Output)
原理

(1) 推挽输出结构由一个P型MOS管(PMOS)和一个N型MOS管(NMOS)组成。

(2) 输出高电平时,PMOS导通,NMOS关断,引脚被拉到Vcc。

(3) 输出低电平时,NMOS导通,PMOS关断,引脚被拉到GND。

(4) 不能同时导通,防止短路。

特点

(1) 可以主动输出高电平和低电平。

(2) 驱动能力强,响应速度快。

(3) 适合直接驱动LED、蜂鸣器等负载。

应用场景

(1) 普通数字信号输出

(2) 需要大电流驱动的场合

(3) SPI、UART等总线

2.2. 开漏输出(Open-Drain Output)
原理

(1) 只用NMOS管(或NPN三极管),没有PMOS。

(2) 输出低电平时,NMOS导通,引脚被拉到GND。

(3) 输出高电平时,NMOS关断,引脚为高阻态(悬空),需要外部上拉电阻拉到高电平。

特点

(1) 只能主动输出低电平,不能主动输出高电平。

(2) 需要外部上拉电阻,才能输出高电平。

(3) 多个开漏输出可以直接并联,实现“线与”功能(有任意一个为低,输出就为低)。

应用场景

(1) I²C总线(多主多从,需线与功能)

(2) 外部中断输入

(3) 需要与不同电压系统通信时(如3.3V与5V系统)

2.3. 总结对比

特性推挽输出开漏输出
输出高电平主动输出需上拉电阻
输出低电平主动输出主动输出
高阻态
并联线与不支持支持
驱动能力取决于上拉电阻
应用普通IO/驱动负载I2C/中断/多机通信
http://www.xdnf.cn/news/15079.html

相关文章:

  • 如何发现 Redis 中的 BigKey?
  • 【计算机网络】HTTP1.0 HTTP1.1 HTTP2.0 QUIC HTTP3 究极总结
  • STM32 中实现 Modbus RTU
  • OneCode AI注解框架:让传统软件15分钟升级为AI原生应用
  • 从零开始搭建深度学习大厦系列-3.卷积神经网络基础(5-9)
  • 【Note】Linux Kernel 实时技术深入:详解 PREEMPT_RT 与 Xenomai
  • python+django/flask基于微信小程序的农产品管理与销售APP系统
  • 数据仓库:企业数据管理的核心枢纽
  • 20250710解决KickPi的K7的SDK编译异常:rk3576-android14.0-25250704.tar.gz【降低BUILD_JOBS】
  • OrCAD 24.1补丁005中文界面切换指南
  • RT-Thread 的 SCons 构建系统的语法、常用用法,并举例说明如何编写典型的 `Kconfig` 和 `SConscript` 文件
  • 解析几何几百年重大错误:将无穷多各异圆盘(球)误为同一点集
  • PyTorch Tensor 的创建与操作入门
  • TCP-与-UDP-协议详解:原理、区别与应用场景全解析
  • 使用SpringAOP自定义权限控制注解
  • UE5 Rotate 3 Axis In One Material
  • Android Studio 打 release 包 Algorithm HmacPBESHA256 not available 问题解决
  • Vue 中监测路由变化时,通常不需要开启深度监听(deep: true)
  • Linux中rw-rw-r--相关的访问权限讲解
  • android TabLayout 标题栏切换 事件拦截
  • 达梦数据库不兼容 SQL_NO_CACHE 报错解决方案
  • 三、神经网络——网络优化方法
  • Ansible:强大的自动部署工具
  • 线上事故处理记录
  • STM32单片机_3
  • Linux驱动开发(platform 设备驱动)
  • RV1126平台(Buildroot Linux)+ SunplusIT SPCA2688 USB摄像头 RTSP推流全流程复盘与问题解决记录
  • 对象序列化与反序列化
  • 快速将照片从三星手机传输到电脑
  • 节点小宝:手机图片备份至电脑功能实测体验