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

单片机基础(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.dtcms.com/a/272653.html

相关文章:

  • Linux驱动06 --- UDP
  • 飞书AI技术体系
  • web 系统对接飞书三方登录完整步骤实战使用示例
  • 低温冷启动 高温热启动
  • OpenCV 图像进阶处理:特征提取与车牌识别深度解析
  • 醋酸镨:闪亮的稀土宝藏,掀开科技应用新篇章
  • Spring IoC 如何注入一些简单的值(比如配置文件里的字符串、数字)?
  • 【文献阅读】Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data
  • MyBatis 使用教程及插件开发
  • 自动驾驶环境感知:天气数据采集与融合技术实战
  • AI-Sphere-Butler项目语音切换数字人管家形象功能老是开发不成功。
  • Oracle 数据库管理与维护实战指南(用户权限、备份恢复、性能调优)
  • 深度学习与图像处理案例 │ 基于深度学习的自动驾驶小车
  • GitHub上优秀的开源播放器项目介绍及优劣对比
  • 申请注册苹果iOS企业级开发者证书需要公司拥有什么规模条件
  • Nacos的基本功能以及使用Feign进行微服务间的通信
  • 【网络编程】 TCP 协议栈的知识汇总
  • ZW3D 二次开发-创建圆柱体
  • Qt cannot find C:\WINDOWS\TEMP\cctVBBgu: Invalid argument
  • QT5使用cmakelists引入Qt5Xlsx库并使用
  • 达梦数据库不兼容 SQL_NO_CACHE 报错解决方案
  • C++交叉编译工具链制作以及QT交叉编译环境配置
  • 生产环境CI/CD流水线构建与优化实践指南
  • 医院多部门协同构建知识库-指南库-预测模型三维网络路径研究
  • 12大产品规划工具对比:功能、价格与适用场景
  • (LeetCode 面试经典 150 题 ) 11. 盛最多水的容器 (贪心+双指针)
  • 2023 年 12 月青少年软编等考 C 语言七级真题解析
  • 2025年语言处理、大数据与人机交互国际会议(DHCI 2025)
  • QBoost 2025版:加速手机性能,提升使用体验
  • django中如何使用Django REST Framework