找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9537|回复: 0
打印 上一主题 下一主题
收起左侧

STM32 MCU GPIO双向口使用的话题

[复制链接]
跳转到指定楼层
楼主
ID:98618 发表于 2015-12-8 04:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本文的作者是milershao
关于STMCUGPIO的双向使用话题不新鲜了,好像还经常有人在此遇点麻烦。这可能跟总有新人接触STMCU不无关系。


几天前一个研究生MM使用STM32GPIO模拟I2C通信,读取一时钟芯片的时钟的过程中遇到麻烦。查看其代码,看到其在SDA数据线读写代码时,发现其来回做SDA脚的GPIO模式切换。那样写虽然没有错,但那样写多少有点累或繁琐。

无独有偶,昨天一广州工程师也是用某STM32芯片的GPIO模拟I2C通信。他发现通信程序总是堵塞在代码某地方。后来发现将那2根通信线的GPIO模式由输入改为ODPP就正常了。程序正是正常了,但有点不知所以然的意味,如鲠在喉。

其实,STMCUGPIO是支持双向通信的。如果希望某GPIO做双向传输,将其配制为OD输出模式,将相应输出寄存器位写1就可以了,不用在程序代码里往返切换。

至于第二个案例,他用GPIO模拟I2C通信,其SDA应是双向数据口,只是把他定义为输入肯定是不行的,那样的话完全没法做输出了。如果这样,通信自然无法正常。他把SDA口配置为OD才是合理的。

下图是GPIO配置为输入时的情况。


如果把GPIO配置为PP是否可以做双向口呢,很多人发现有时可行有时不可行。

我们不妨先看看STMCU GPIO配置为输出时的原理框图。


对于OD配置,结合上拉,输出电平的高低确定。当给端口输出寄存器写1时,端口对外成高阻态。外部电平真实反映在端口上,输入电平不受内部输出控制电路的影响,而且GPIO管脚相对安全。

对于PP配置端口,跟OD配置相比,差别就大了。首先对于PP配置,总有一边管子导通,对外来电平会有些影响。

若给PP配置端口输出寄存器写0,只有下方的N-MOS导通到地,端口不论外部电平如何变化都会锁定在低电平,当外来输入高电平时有管脚烧坏风险。

如果给PP配置端口输出寄存器写1,只让上方P-MOS导通。如果外来电平为高没什么问题,如果外来电平是低,也有可能管脚过流烧掉。当然到底烧不烧还得结合外围电路的配置。整体而言,对于PP配置输出口不合适作输入的读取,所以不建议使用PP做双向口用。关于STMCUGPIO的双向使用话题不新鲜了,好像还经常有人在此遇点麻烦。这可能跟总有新人接触STMCU不无关系。


几天前一个研究生MM使用STM32GPIO模拟I2C通信,读取一时钟芯片的时钟的过程中遇到麻烦。查看其代码,看到其在SDA数据线读写代码时,发现其来回做SDA脚的GPIO模式切换。那样写虽然没有错,但那样写多少有点累或繁琐。

无独有偶,昨天一广州工程师也是用某STM32芯片的GPIO模拟I2C通信。他发现通信程序总是堵塞在代码某地方。后来发现将那2根通信线的GPIO模式由输入改为ODPP就正常了。程序正是正常了,但有点不知所以然的意味,如鲠在喉。

其实,STMCUGPIO是支持双向通信的。如果希望某GPIO做双向传输,将其配制为OD输出模式,将相应输出寄存器位写1就可以了,不用在程序代码里往返切换。

至于第二个案例,他用GPIO模拟I2C通信,其SDA应是双向数据口,只是把他定义为输入肯定是不行的,那样的话完全没法做输出了。如果这样,通信自然无法正常。他把SDA口配置为OD才是合理的。

下图是GPIO配置为输入时的情况。


如果把GPIO配置为PP是否可以做双向口呢,很多人发现有时可行有时不可行。

我们不妨先看看STMCU GPIO配置为输出时的原理框图。


对于OD配置,结合上拉,输出电平的高低确定。当给端口输出寄存器写1时,端口对外成高阻态。外部电平真实反映在端口上,输入电平不受内部输出控制电路的影响,而且GPIO管脚相对安全。

对于PP配置端口,跟OD配置相比,差别就大了。首先对于PP配置,总有一边管子导通,对外来电平会有些影响。

若给PP配置端口输出寄存器写0,只有下方的N-MOS导通到地,端口不论外部电平如何变化都会锁定在低电平,当外来输入高电平时有管脚烧坏风险。

如果给PP配置端口输出寄存器写1,只让上方P-MOS导通。如果外来电平为高没什么问题,如果外来电平是低,也有可能管脚过流烧掉。当然到底烧不烧还得结合外围电路的配置。整体而言,对于PP配置输出口不合适作输入的读取,所以不建议使用PP做双向口用。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶1 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表