新闻详情

新闻详情

首页 / 资讯中心 / 详情

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

发布时间:2026/9/27 6:56:23来源:尧图网络
【嵌入式外设精学】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
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

GR00T-WholeBodyControl运动学规划器详解:如何实时生成奔跑、潜行、跪姿、拳击8种动作风格 2026/9/27 6:56:22

GR00T-WholeBodyControl运动学规划器详解:如何实时生成奔跑、潜行、跪姿、拳击8种动作风格

GR00T-WholeBodyControl运动学规划器详解:如何实时生成奔跑、潜行、跪姿、拳击8种动作风格 【免费下载链接】GR00T-WholeBodyControl Welcome to GR00T Whole-Body Control (WBC)! This is a unified platform for developing and deploying advanced humanoid cont…

阅读更多 →
佛山网站建设公司3lue:5个免费工具搞定丑站痛点 2026/9/27 6:56:16

佛山网站建设公司3lue:5个免费工具搞定丑站痛点

佛山网站建设公司3lue:5个免费工具搞定丑站痛点 还在为模板网站太丑不够用而头疼?别急着掏钱找佛山网站建设公司3lue,先试试这几个 免费工具 。很多甲方朋友一上来就问价格,却忽略了网站上线前的视觉诊断和性能体检。…

阅读更多 →
解决matplotlib绘图中文字符显示问题 2026/9/27 6:56:16

解决matplotlib绘图中文字符显示问题

在使用Python进行数据可视化时,常常会遇到中文字符无法正常显示的问题。默认情况下,Matplotlib等常用可视化库并不支持中文字体,这导致中文字符显示为方框或者引发字体相关的警告,给数据展示和报告生成带来不便。尤其对于数据分析师而言,频繁手动调整字体配置既耗时又易出…

阅读更多 →
RL-赵-(九)-Policy函数拟合算法-Policy Gradient算法01:基本概念【用参数化的函数来拟合π,来取代表格形式的π(表格中每个元素直接保存了某个s-a对的π概率值)】 2026/9/27 6:56:15

RL-赵-(九)-Policy函数拟合算法-Policy Gradient算法01:基本概念【用参数化的函数来拟合π,来取代表格形式的π(表格中每个元素直接保存了某个s-a对的π概率值)】

从本文开始,将从value-based methods转向到policy-based methods,从value function approximation到policy function approximation。 一、Basic idea of policy gradient 到目前,我们的policies都是用tables表示的。 如下是所有state的action probabilities,存储在一个t…

阅读更多 →
用AgentENV训练Terminal-Bench-2:搭建Agent强化学习的沙箱后端 2026/9/27 6:56:01

用AgentENV训练Terminal-Bench-2:搭建Agent强化学习的沙箱后端

用AgentENV训练Terminal-Bench-2:搭建Agent强化学习的沙箱后端 【免费下载链接】AgentENV AgentENV (AENV) is a distributed platform for running agent environments at scale. 项目地址: https://gitcode.com/gh_mirrors/age/AgentENV AgentENV&#xff…

阅读更多 →
别被建站报价忽悠 揭秘免费做调查问卷的网站真底细 2026/9/27 6:55:54

别被建站报价忽悠 揭秘免费做调查问卷的网站真底细

别被建站报价忽悠 揭秘免费做调查问卷的网站真底细 找建站公司怕被坑高价,这是很多老板心里的痛点。市面上那些号称“全网最低”的建站报价单,往往藏着无数的隐形消费。今天咱们不聊虚的,直接拆解一个看似与建站无关,实则能帮你省下一大笔营销成本的场景…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉