模式选择汇总参考表:

模式输出驱动输入阻抗默认状态典型应用场景
推挽输出强驱动禁用可配置LED, SPI, 高速信号
开漏输出弱驱动禁用低/悬空I²C, 电平转换, 线与
浮空输入禁用极高不确定外部强驱动信号
上拉输入禁用中高高电平按键(接地型), 数字输入
下拉输入禁用中高低电平按键(接VDD型), 中断
模拟输入禁用极高ADC, 模拟信号采集

输出模式:

1. 推挽输出 (Push-Pull)

       VDD│├──P-MOS◯──┐ (受控导通)│         │
控制逻辑─┤         ├───GPIO引脚│         │├──N-MOS◯──┘ (受控导通)│GND工作状态:
高电平:P-MOS导通,N-MOS截止 → 引脚=VDD
低电平:P-MOS截止,N-MOS导通 → 引脚=GND
  • 特点

    • 双MOS管协同工作(P管拉高,N管拉低)

    • 可主动输出高/低电平

    • 驱动能力强(典型20mA),多个IO之间不可以直接并联,否则短路

  • 应用

    • LED控制

    • 驱动继电器

    • SPI、UART通信

    • 高速数字信号

2. 开漏输出 (Open-Drain)

       VDD│├──P-MOS ──┐ (永久禁用)│         │
控制逻辑─┤         ├───GPIO引脚───┬──外部上拉电阻──VDD_EXT│         │             │ (可选不同电压)├──N-MOS◯──┘ (受控导通)  ││                      ▼GND                    GND工作状态:
低电平:N-MOS导通 → 引脚=GND
高电平:N-MOS截止 → 引脚悬空(需外部上拉)
  • 特点

    • 只有N-MOS工作

    • 高电平依赖外部上拉

    • 支持"线与"连接,即多个IO之间可以直接并联

  • 应用

    • I²C/SMBus总线

    • 电平转换(3.3V↔5V)

    • 多设备中断共享

    • 开关键控

 

 

输入模式: 

1. 浮空输入 (Floating Input)

       VDD│├──P-MOS ──┐ (禁用)│         │
控制逻辑─┤         ├───GPIO引脚───外部信号源│         │├──N-MOS ──┘ (禁用)│GND▲│无上拉/下拉
  • 特点

    • 完全悬空状态

    • 高阻抗输入(>1MΩ)

    • 易受干扰

  • 应用

    • 外部明确驱动的信号

    • ADC输入前级

    • 高速数字信号接收

 2. 上下拉输入 (Pull-up Input)

       VDD││ 内部上拉电阻(30-50kΩ)├───┬──────┐│   │      │├──P-MOS ──┤ (禁用)│         │
控制逻辑─┤         ├───GPIO引脚│         │├──N-MOS ──┘ (禁用)│GNDVDD│├──P-MOS ──┐ (禁用)│         │
控制逻辑─┤         ├───GPIO引脚│         │├──N-MOS ──┘ (禁用)│GND▲│内部下拉电阻(30-50kΩ)
  • 特点

    • 内部上拉电阻使能

    • 默认高电平

    • 抗干扰能力增强

  • 应用

    • 按键检测(按键接地)

    • 数字传感器输入

    • 默认高有效的信号

 3. 模拟输入 (Analog Input)

       VDD│├──P-MOS ──┐ (禁用)│         │
控制逻辑─┤         ├───GPIO引脚───┬──ADC输入│         │             │├──N-MOS ──┘ (禁用)      ▼│                  模拟信号源GND
  • 特点

    • 完全断开数字电路

    • 高阻抗模式(>10MΩ)

    • 无上拉/下拉

  • 应用

    • ADC采样

    • 模拟传感器接口

    • 精密测量电路

实际配置示例(STM32 HAL库):

// 推挽输出
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;// 开漏输出(I²C)
GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
GPIO_InitStruct.Pull = GPIO_PULLUP;// 上拉输入(按键检测)
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;// 下拉输入
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLDOWN;// 模拟输入(ADC)
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = GPIO_NOPULL;

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/92356.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/92356.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/92356.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度解析ECharts.js:构建现代化数据可视化的利器

引言:数据可视化的新时代挑战 在数字化转型浪潮中,数据可视化已成为企业决策和用户体验的关键环节。面对海量数据的呈现需求,传统表格已无法满足用户对直观洞察的渴求。作为百度开源的JavaScript可视化库,ECharts.js凭借其强大的功…

从零构建实时通信引擎:Freeswitch源码编译与深度优化指南

一、构建工具:编译FreeSWITCH及其依赖库的基础 1. CMake2. Autoconf 二、汇编器:提升音视频处理性能 3. YASM / NASM 三、音视频编解码器:支撑实时媒体传输 4. Opus5. x264 (可选)6. libvpx / libvpx2 (可选) 四、多媒体框架与工具库&#xf…

网络原理 HTTP 和 HTTPS

目录 一 . HTTP 协议 二 . 抓包 三 . HTTP 请求 / 响应的基本格式 (1)HTTP请求的基本格式 (2)HTTP响应的基本格式 四 . HTTP 方法 GET 和 POST 的区别: 五 . 请求报头和响应报头 (1&#…

基于单片机的自动条幅悬挂机

摘 要 随着日新月异科技发展,在心率体温测量方面,我们取得了迅速的发展,就近日而言,脉搏测量仪已经在多个领域大展身手,除了在医学领域有所建树,在人们的日常生活方面的应用也不断拓展,如检疫…

《C++》面向对象编程--类(中)

文章目录一、构造函数1.1定义1.2语法1.3特性二、析构函数2.1定义2.2语法2.3特性三、拷贝构造函数3.1定义3.2语法3.3特性3.4浅拷贝3.4.1定义3.4.2浅拷贝的风险3.5深拷贝一、构造函数 1.1定义 在C中,构造函数(Constructor) 是一种特殊的成员函…

机器学习初学者理论初解

大家好! 为什么手机相册能自动识别人脸?为什么购物网站总能推荐你喜欢的商品?这些“智能”背后,都藏着一位隐形高手——机器学习(Machine Learning)。一、什么是机器学习?简单说,机器学习是教计…

原码反码补码

在Java中,无论是小数还是整数,他们都要带有符号(和C语言不同,C语言有无符号数)。首位就作为符号位。原码反码:正数的反码是其原码本身负数的反码是在其原码的基础上, 符号位不变,其余各个位取反…

使用ubuntu:20.04和ubuntu:jammy构建secretflow环境

一、使用ubuntu:20.04构建隐语编译环境FROM ubuntu:20.04LABEL maintainer"build SecureProtocolLib on ubuntu:20.04"ARG TARGETPLATFORM# change dash to bash as default shell RUN ln -sf /bin/bash /bin/shRUN apt update \&& apt upgrade -y \&&am…

Hinge Loss(铰链损失函数)详解:SVM 中的关键损失函数

📌 一、什么是 Hinge Loss?Hinge Loss(铰链损失),是 支持向量机(SVM, Support Vector Machine) 中常用的一种损失函数,用于最大间隔分类。其核心思想是:当预测结果已经正…

days32 :零基础学嵌入式之网络2.0

一、wireshark :网络抓包工具1.功能:抓取通过电脑网卡的网络数据2.作用:排查故障、抓取数据做数据分析、3.用法:(1)sudo wireshark(2)选择需要抓取的网卡》any(3&#xf…

数字护网:一次深刻的企业安全体系灵魂演练

🧩 引言:什么是“护网”?—— 不止是攻防,更是企业安全能力的年度大考 每年,由国家相关部门牵头的“护网行动”都如期而至,各大企事业单位的安全团队也随之进入高度戒备状态。然而,“护网”远非…

基于 NumPy 的高效数值计算技术解析与实践指引

在数据处理与科学计算领域,高效是核心诉求。NumPy 作为 Python 生态高效数值计算的基石,以高性能多维数组对象及配套函数,成为数据从业者的必备工具。其数组支持算术、比较、逻辑等丰富运算,通过向量化操作直接处理每个元素&#…

Kafka MQ 控制器 broker

Kafka MQ 控制器 broker 1 控制器broker的选举 在 Kafka 集群中会有一个或多个 broker,其中有一个 broker 会被选举为控制器(Kafka Controller)​,它负责管理整个集群中所有分区和副本的状态。当某个分区的leader副本出现故障时,由控制器负责为该分区选举新的leader副本…

50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | ImageCarousel(图片轮播组件)

&#x1f4c5; 我们继续 50 个小项目挑战&#xff01;—— ImageCarousel组件 仓库地址&#xff1a;https://github.com/SunACong/50-vue-projects 项目预览地址&#xff1a;https://50-vue-projects.vercel.app/ 使用 Vue 3 的 <script setup> 语法以及 Tailwind CSS …

基于springboot的智能物流管理系统(源码+论文)

一、开发环境 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器&#xff0c;基于SQL的客户/服务器模式的关系数据库管理系统。其特点包括&#xff1a; 功能强大&#xff1a;支持多用户、多线程操作。使用简单&#xff1a;管理方便&#xff0c;安全可靠性高。跨平…

Collection接口的详细介绍以及底层原理——包括数据结构红黑树、二叉树等,从0到彻底掌握Collection只需这篇文章

目录 Collection简介 Collection的遍历方式 迭代器遍历 增强for遍历 Lambda表达式遍历 List集合 List集合的遍历方式 列表迭代器遍历以及普通for循环 数据结构 栈 队列 数组 链表 单向链表 双向链表 二叉树 遍历方式 普通二叉树 二叉查找树 平衡二叉树 旋转…

《安顺棒垒球》世界十大运动·棒球1号位

Worlds Top 10 Sports for Newbies | 棒球排第几&#xff1f; 全球青训体系大揭秘 ⚾添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09;神王棒球世界十大运动排名 Top 10 Global Sports&#xff08;按参与度/商业价值/影响力综合排序&#xff09;足球 Footba…

什么是“差分“?

1. 什么是"差分"&#xff1f;想象两个人在玩跷跷板&#xff1a;当两人同时向上跳&#xff08;同向移动&#xff09;→ 跷跷板不动 → 这叫"共模"当一人向上&#xff0c;另一人向下&#xff08;反向移动&#xff09;→ 跷跷板倾斜 → 这叫"差分"差…

4.组合式API知识点(2)

10 组合式API - 模版引用模板引用的概念如何使用&#xff08;以获取dom为例 组件同理&#xff09;组件实例对象defineExpose()11 组合式API - provide和inject作用和场景跨层传递普通数据跨层传递响应式数据跨层传递方法需求解决思考

GitLab企业版部署与许可证生成完整指南

GitLab企业版部署与许可证生成完整指南一、背景二、环境准备三、部署步骤1. 创建目录结构2. 生成GitLab许可证2.1 克隆许可证生成器2.2 修改生成器脚本2.3 构建Docker镜像2.4 生成许可证文件3. 创建Docker Compose配置文件4. 启动GitLab容器4.1 初始启动4.2 修改GitLab配置4.3 …