首页/新闻资讯/正文详情

【嵌入式外设精学】Day02|GPIO 输出:推挽和开漏差在哪

发布时间:2026/9/26 4:17:11 来源:云帆数科 栏目:资讯中心
【嵌入式外设精学】Day02|GPIO 输出:推挽和开漏差在哪
【Embedded Peripheral Deep Dive】Day02GPIO Output: Push-Pull vs Open-Drain今天解决点灯用推挽为什么 I2C 要开漏“线与”是什么目录问题 2. 原理 3. 代码 4. 误区 5. 自测 6. 答案1. 问题多个设备接同一根线会不会冲突开漏输出 1线上的电压从哪来2. 原理2.1 推挽Push-Pull输出级既能强推 1也能强灌 0速度快边沿干净适合LED、片选、单独驱动外设不能和另一个推挽脚“对顶”一个 1 一个 0 会短路大电流2.2 开漏Open-Drain只负责把线拉低输出 1 时脚放开高阻靠上拉电阻回到高电平。输出 1 ≠ 芯片在驱动 1上升沿由上拉电阻和线电容决定比推挽慢没有上拉就没有高电平2.3 线与Wired-AND多个开漏脚并在同一根线上时任意一个输出 0 → 线就是 0所有脚都放开 → 线才是 1这就是 I2C 多主机、仲裁、只许拉低的物理基础。2.4 速度为什么上不去I2C高电平靠上拉“慢慢充满线电容”。上拉越大越慢越小越费电。所以线长、设备多就要减小上拉电阻或降低通信速率。3. 代码示例推挽点灯#includestm32f4xx.hvoidled_init(void){GPIO_InitTypeDef g;g.GPIO_PinGPIO_Pin_5;g.GPIO_ModeGPIO_Mode_OUT;g.GPIO_OTypeGPIO_OType_PP;/* 推挽 */g.GPIO_SpeedGPIO_Speed_2MHz;g.GPIO_PuPdGPIO_PuPd_NOPULL;GPIO_Init(GPIOA,g);}voidled_set(inton){if(on){GPIO_SetBits(GPIOA,GPIO_Pin_5);}else{GPIO_ResetBits(GPIOA,GPIO_Pin_5);}}开漏“写 1 放开”I2C 数据脚常用#includestm32f4xx.hvoidsda_gpio_init_od(void){GPIO_InitTypeDef g;g.GPIO_PinGPIO_Pin_7;g.GPIO_ModeGPIO_Mode_OUT;g.GPIO_OTypeGPIO_OType_OD;/* 开漏板上有上拉 */g.GPIO_SpeedGPIO_Speed_2MHz;g.GPIO_PuPdGPIO_PuPd_UP;GPIO_Init(GPIOB,g);}voidsda_release(void){GPIO_SetBits(GPIOB,GPIO_Pin_7);}/* 1高阻 */voidsda_drive_low(void){GPIO_ResetBits(GPIOB,GPIO_Pin_7);}线与直观理解逻辑上/* bus 所有开漏脚的“线与” */intod_bus_is_high(int*drive_low,intn){inti;for(i0;in;i){if(drive_low[i]){return0;/* 有人拉低 → 0 */}}return1;/* 全放开 → 上拉到 1 */}4. 常见误区误区正解开漏输出 1 就是输出 3.3V是高阻电压来自上拉两个推挽脚接在一起也能用禁止会直通损坏I2C 不用外接上拉必须外上拉上拉越小越好过小电流大、发热过大上升太慢5. 自测开漏脚输出 1 时线上电压由谁决定两个脚一个推挽输出 0、一个推挽输出 1接在一起会怎样6. 答案上拉电阻和电源脚本身是高阻。电源经两只管脚直通大电流可能损坏 IO绝对禁止。作者shuifanyu标签推挽开漏线与I2CGPIO

相关推荐

40 个 SpringBoot 常用注解:让生产力爆表!
40 个 SpringBoot 常用注解:让生产力爆表!

一、写在前面:为什么注解如此重要Spring Boot 之所以能够大幅降低 Java 后端开发的复杂度,一个非常重要的原因就是把原来需要写大量 XML 配置、手动组装 Bean、编写样板代码的工作,全部浓缩成一个个简洁的注解。开发者只需要在类、方法、字段… · 2026/9/26 4:17:05

LeetCode125 验证回文串 —— 字符串函数与 ASCII 码解析
LeetCode125 验证回文串 —— 字符串函数与 ASCII 码解析

一、题目核心概括题目要求:给定字符串 s,判断它是否为回文串。判断规则分两步预处理:大小写归一:将所有大写字母 → 小写字母过滤字符:移除非字母、非数字的字符(空格、标点、符号)回文判定&… · 2026/9/26 4:16:59

SSE 长连接动态压缩与流量整形(Traffic Shaping)实战
SSE 长连接动态压缩与流量整形(Traffic Shaping)实战

SSE 长连接动态压缩与流量整形(Traffic Shaping)实战在高并发流式大语言模型(LLM Streaming)网关服务中,当有数万个并发用户同时在线接收大模型返回的打字机 Token 时,推流网关面临着两项极其严峻的**“物理… · 2026/9/26 4:16:53

流程控制语句详解:分支、循环与跳出机制的工程实践
流程控制语句详解:分支、循环与跳出机制的工程实践

流程控制语句这块内容,是所有编程入门教材里几乎雷打不动的第三章,也是我当年第一次觉得“代码不再是死例子”的分水岭:程序终于能根据条件拐弯、能重复干一件无聊事十万遍而不抱怨。不管你是零基础自学Java、C还是Python,把流程控… · 2026/9/26 5:38:57

JSP+MySQL在线医疗预约挂号系统源码实战:环境搭建、核心业务与避坑指南
JSP+MySQL在线医疗预约挂号系统源码实战:环境搭建、核心业务与避坑指南

简介:这是一套基于JSP与MySQL开发的在线医疗预约挂号管理系统源码,面向计算机专业学生、Java Web初学者及需要课程设计或毕业设计参考的开发者,帮助解决医院挂号流程数字化、科室与医生排班管理等实际问题。压缩包共206个文件,约1… · 2026/9/26 5:38:57

MySQL查询优化实战:从去重、排序到索引与锁的全面排查指南
MySQL查询优化实战:从去重、排序到索引与锁的全面排查指南

1. 从热搜词里看大家最常摔跤的地方这段时间帮几个团队看MySQL问题,顺手刷了一圈大家搜得最多的查询相关内容,"sql语句去重查询""in查询语句报错""mysql排序""mysql将字符串转为日期""mysql中int5"这… · 2026/9/26 5:38:57

MySQL事务与锁机制:高并发下数据一致性的核心实践
MySQL事务与锁机制:高并发下数据一致性的核心实践

前几天线上有个订单服务在处理并发库存扣减时,库里出现了负数库存。我翻了两小时日志,最后定位到的问题并不在业务逻辑,而是事务没包住边界、锁没有按预期兜底。说真的,只要你的系统要同时处理多人下单、多人抢购、多节点并发写数… · 2026/9/26 5:38:57

HNUST软件工程实训:人事管理系统落地全链路指南
HNUST软件工程实训:人事管理系统落地全链路指南

简介:本资源是湖南科技大学计算机学院2023年综合创新实训3的软件工程实践成果,面向高校计算机/软件工程专业本科生,聚焦人事管理系统从需求分析到设计落地的全流程实践。文档完整覆盖项目简介、需求分析(含用例图与功能模块划分&a… · 2026/9/26 5:38:57

行行查逆向分析:用开发者工具拆解数据产品查询链路
行行查逆向分析:用开发者工具拆解数据产品查询链路

1. 行行查逆向分析:我到底在“逆”什么“行行查逆向分析”这个标题,听起来挺硬核,但先泼一盆冷水:我说的逆向,不是破解软件、不是脱壳抓包去薅付费数据,更不是把某个商业产品的付费墙拆了当免费工具用。那些… · 2026/9/26 5:38:51

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码