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

单片机外设快速入门篇(五)——GPIO篇

文章目录

  • 一、GPIO输入模式
  • ​二.GPIO输出模式
  • 三.GPIO配置步骤

一、GPIO输入模式

​1. 浮空输入(Floating Input)​
​原理:引脚电平完全由外部电路决定,无内部上拉或下拉电阻。
​特点:
悬空时电平不确定(易受干扰)。
需外部电路确保稳定电平。
​适用场景:外部信号源已有明确电平驱动(如SPI通信、ADC采样)。
​2. 上拉输入(Pull-up Input)​
​原理:内部上拉电阻将引脚默认拉至高电平(VCC)。
​特点:
悬空时引脚为高电平。
外部接地时变为低电平。
​适用场景:按键检测(按键未按下时为高电平,按下时接地为低电平)。
​3. 下拉输入(Pull-down Input)​
​原理:内部下拉电阻将引脚默认拉至低电平(GND)。
​特点:
悬空时引脚为低电平。
外部接高电平时变为高电平。
​适用场景:传感器触发信号(如高电平有效的中断信号)。

​二.GPIO输出模式

​1. 推挽输出(Push-Pull Output)​
​原理:
输出高电平时:MOS管导通,引脚连接VCC。
输出低电平时:MOS管导通,引脚连接GND。
​特点:
高低电平驱动能力强,可直接驱动LED、继电器等。
电平稳定,抗干扰能力强。
​适用场景:普通数字信号输出(如控制LED、蜂鸣器)。

​2. 开漏输出(Open-Drain Output)​
​原理:
输出低电平时:MOS管导通,引脚连接GND。
输出高电平时:MOS管关闭,引脚为高阻态(需外接上拉电阻)。
​特点:
高电平依赖外部上拉电阻。
支持“线与”逻辑(多设备共享总线)。
​适用场景:
I²C、SMBus等通信总线。
电平转换(如5V与3.3V设备兼容)。

​3. 复用功能输出(Alternate Function Output)​
​原理:GPIO引脚配置为特定外设功能(如UART、SPI、PWM等)。
​特点:信号由外设模块自动控制。
​适用场景:外设专用通信或控制(如定时器输出PWM波)。

特殊模式
​1. 模拟输入(Analog Input)​
​原理:引脚直接连接ADC(模数转换器),读取模拟电压。
​适用场景:传感器模拟信号采集(如温度、光照强度)。
​2. 高阻态(High-Z)​
​原理:引脚既非输入也非输出,呈现高阻抗状态。
​适用场景:总线冲突避免或信号隔离。

三.GPIO配置步骤

​时钟使能:开启对应GPIO端口的时钟。
​引脚模式设置:选择输入/输出/复用/模拟模式。
​输出类型设置:推挽或开漏输出。
​上拉/下拉配置:选择是否启用内部电阻。
​速度配置:设置输出驱动速度(低速/中速/高速)。

// STM32 HAL库配置示例(推挽输出)
GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pin = GPIO_PIN_5;           // 选择引脚
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // 推挽输出
GPIO_InitStruct.Pull = GPIO_NOPULL;         // 不启用上拉/下拉
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; // 高速驱动
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);     // 初始化GPIOA

相关文章:

  • Houdini :《哪吒2》神话与科技碰撞的创新之旅
  • 【linux】虚拟机执行sudo yum isntall perl报错 could not retrieve mirrorlist htt:
  • 通向AGI的未来之路!首篇2D/视频/3D/4D统一生成框架全景综述(港科大中山等)
  • Elasticsearch使用记录
  • spring动态代理是在生命周期的哪个阶段实现的
  • 矩阵期望 E 的含义:概率
  • 蓝桥杯高频考点——进制转换
  • 【 利用socket来实现简单远控】
  • c++中字符串string常用的函数
  • AMBA-CHI协议详解(二十二)
  • Next-Slides 更新记录
  • AcWing 5960:输出前k大的数 ← 小根堆
  • centos 磁盘重新分割,将原来/home 下部分空间转移到 / 根目录下
  • Idea集成docker通过ca加密实现镜像打包
  • freetros 信号量使用方法实例解析
  • 【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring Boot 的自动配置:约定优于配置的设计美学
  • 激光雷达点云改善汇总
  • FastGPT原理分析-数据集创建第一步
  • Java学习第十二天--集合
  • Fisher信息、梯度方差与学习率调度器的计算流程
  • 三亚通报救护车省外拉警报器开道旅游:违规违法,责令公司停业整顿
  • 铁路部门:确保沿线群众安全,焦柳铁路6个区段将陆续安装防护栅栏
  • 上海交大计算机学院成立,设多个拔尖人才特色班
  • 菲律宾举行中期选举
  • 中方发布会:中美经贸高层会谈取得了实质性进展,达成了重要共识
  • 古埃及展进入百天倒计时,闭幕前168小时不闭馆