0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于STM32F1开漏输出的误解

鱼鹰谈单片机 来源:鱼鹰谈单片机 2024-08-12 17:23 次阅读

来源:公众号【鱼鹰谈单片机

作者:鱼鹰Osprey

ID :emOsprey

正文

有些 IO 可能作为双向输出,比如 I2CSDA 引脚,如果配置成推挽输出(push-pull),那么当要读取 应答信号或者读取 i2c 数据时,需要重新配置 IO。

因此,很多教程会建议配置成开漏输出(open-drain),这样就不需要来回配置输出方向。

这里需要注意的一点是,不管是开漏还是推挽输出,作为输入时,都需要设置 ODR 寄存器

一直以为设置为开漏后,不管 ODR 设置 0 或 1,引脚电平应该都是一样的低电平,实际上,还是会有差异:

开漏 ODR 设置为 1:0.15~0.6V(波动比较大)

开漏 ODR 设置为 0:0.002V

按理说,即使 0.6V 电压,IDR 读出的值应该都是 0 才对,实际上,不管是代码,还是调试窗口,偶尔还是可以读出 1 的情况。

外部未接任何电路,开发板引脚悬空:

wKgZoma51JaASU_OAAGYnZFz2Fg135.jpg

刚开始以为是调试窗口有问题,但通过代码发现,开漏模式下,即使未接外部上拉电阻,电平确实被识别成高电平.

并且使用逻辑分析仪也是被莫名其妙的识别成高电平。

1V 不到的电平怎么就是高电平了(VDD 3.3V)?

wKgZoma51JWAbzFDAAHcjdmeoZo032.jpg

按这个数据手册来说,VDD 3.3V 情况下,最少也需要 1.5V 以上才会被识别为高电平,百思不得其解。如果有道友懂的可以留言区讨论,没找到理论依据。

并且当设置为开漏时,当准备作输入时,如果 ODR 不设置为 1,虽然应答信号可以读取,读取的数据却是错误的(测试 AT24C256)

wKgaoma51JWAd8WvAAGOathfoCo795.jpg

STM32F103 参考手册)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5250

    浏览量

    119197
  • 引脚
    +关注

    关注

    16

    文章

    1131

    浏览量

    49740
  • 开漏输出
    +关注

    关注

    0

    文章

    34

    浏览量

    7282
  • stm32f1
    +关注

    关注

    1

    文章

    56

    浏览量

    12136

原文标题:关于 STM32F1 开漏输出的误解

文章出处:【微信号:emOsprey,微信公众号:鱼鹰谈单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    输出_什么是输出

    什么是输出,输出:OC门的输出就是
    发表于 03-31 15:31 7267次阅读

    输出与推挽输出比较

    stm32 gpio 输出与推挽输出的区别。
    发表于 05-19 15:32 16次下载

    关于STM32f1f4编程的一些问题解决方案

    关于STM32f1f4编程的一些问题
    发表于 04-03 15:31 5次下载

    STM32F1系列DEBUG调试功能需要配置吗?

    STM32F1系列的DEBUG调试功能需要配置吗?
    的头像 发表于 03-01 13:57 3202次阅读

    STM32F1系列芯片中文参考手册

    STM32F1系列芯片中文参考手册(嵌入式开发培训教程)-STM32F1系列芯片的中文用户手册
    发表于 07-30 09:32 215次下载
    <b class='flag-5'>STM32F1</b>系列芯片中文参考手册

    STM32F1官方手册资料(中英文)

    STM32F1官方手册资料(中英文)
    发表于 11-05 16:28 69次下载

    STM32F1F4的区别

    STM32F1F4的区别
    发表于 12-04 13:51 24次下载
    <b class='flag-5'>STM32F1</b>和<b class='flag-5'>F</b>4的区别

    STM32F1 使用easyflash操作片内flash

    STM32F1 使用easyflash操作片内flash
    发表于 12-09 10:06 15次下载
    <b class='flag-5'>STM32F1</b> 使用easyflash操作片内flash

    STM32F1双DMA提高串口速度

    STM32F1双DMA,提高串口速度
    发表于 09-26 16:11 5次下载

    AN3427_从STM32F1移植到STM32F2的应用手册

    AN3427_从STM32F1移植到STM32F2的应用手册
    发表于 11-21 17:06 9次下载
    AN3427_从<b class='flag-5'>STM32F1</b>移植到<b class='flag-5'>STM32F</b>2的应用手册

    AN4904_从STM32F1STM32F4的软件移植

    AN4904_从STM32F1STM32F4的软件移植
    发表于 11-21 17:06 3次下载
    AN4904_从<b class='flag-5'>STM32F1</b>到<b class='flag-5'>STM32F</b>4的软件移植

    UM1847_基于STM32F1系列的STM32CubeF1软件库使用入门

    UM1847_基于STM32F1系列的STM32CubeF1软件库使用入门
    发表于 11-22 08:22 4次下载
    UM1847_基于<b class='flag-5'>STM32F1</b>系列的<b class='flag-5'>STM32CubeF1</b>软件库使用入门

    AN2629 STM32F1低功耗模式

    AN2629 STM32F1低功耗模式
    发表于 11-24 08:30 0次下载
    AN2629 <b class='flag-5'>STM32F1</b>低功耗模式

    输出和推挽输出

    STM32或者GD32中,普通的输出GPIO输出方式主要是输出和推挽
    的头像 发表于 11-24 10:23 1.3w次阅读
    <b class='flag-5'>开</b><b class='flag-5'>漏</b><b class='flag-5'>输出</b>和推挽<b class='flag-5'>输出</b>

    单片机STM32F1资料分享

    单片机STM32F1资料分享
    发表于 05-16 18:04 15次下载