21521|4

18

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

GPIO开漏输出模式读取输入数据寄存器是否可取 [复制链接]

今晚对STM32的GPIO相关知识做了个了解,遇到了一个问题,自己的理解和文档里面叙述的刚好相反,绕不出来,特来此地求赐教。

先贴出下面两段文字:(图片分别是GPIO配置为通用输入模式和输出模式的结构图,也是STM32参考手册的P107和P108)

当IO配置为输入模式时:
1、输出缓存器被禁止;
2、斯密特触发器输入被激活;
3、根据输入配置位,选择上拉还是下拉(都是弱的);
4、出现在IO脚上的数据在每个APB2时钟采样到输入数据寄存器中;
5、对输入数据寄存器的读访问可以得到IO的状态;
IO配置为输出模式:  
1、输出缓存器被激活;
1.1、开漏模式:输出0 N-MOS激活,输出1将端口置高阻态(P-MOS从未激活过)
1.2、推挽模式:输出0 N-MOS激活,输出1 P-MOS激活;
2、斯密特触发输入被激活;
3、弱上下拉被禁止;
4、出现在IO端口上的数据在每个APB2时钟采样到输入数据寄存器;
5、在开漏模式下,对输入数据寄存器的访问可以得到IO口的状态;
6、在推挽模式下,对输出数据寄存器的读访问可以得到最后一次写的值;
不解之处:就是输出模式下的第5和第6点,上面的文字是STM32手册上的原话,
我理解正好和这个相反。在开漏模式下,输出寄存器输出“1”会将端口高阻(前提是端口没有上下拉电阻)
,然后在此模式下每个APB2时钟下被采样到输入数据寄存器就会出现不定值(1或者0),因为端口有可能是高阻态,
所以我觉得输出开漏模式下去读取输入数据寄存器是不可取的。相反在推挽式的输出模式,端口上的电平是确定的,
因此采样进输入数据寄存器的数据就是可靠的。既然这样文档中的5和6点不是反了么,权威的文档是不容置疑的,不知道我哪里理解错了
还望大虾指点,独孤学STM32有点小痛苦,期待热心人士指点



[ 本帖最后由 yurl09mail 于 2012-11-5 00:08 编辑 ]

图片1.png (53.61 KB, 下载次数: 1)

IO端口配置为输入模式

IO端口配置为输入模式

图片2.png (49.17 KB, 下载次数: 0)

端口配置位输出模式

端口配置位输出模式
此帖出自stm32/stm8论坛

最新回复

谢谢,特意注册账号来回复,感谢,虽然你看不见   详情 回复 发表于 2020-8-17 14:08
点赞 关注
 

回复
举报

18

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
在群里得到热心人士的回复,在此 表示感谢
ALIENTEK STM32交流高群17
最后一封信(975553987) 0:10:51
我感觉没有问题啊!正式因为开漏模式,输出高阻态,所以IO口状态由相连接的外部设备决定,读取输入寄存器,就是IO口状态的
Ψ=Σ2πω<rongliang.yu@foxmail.com> 0:17:19
嗯 你这么说也对
Ψ=Σ2πω<rongliang.yu@foxmail.com> 0:17:52
但是 若果接的外设 是输入,一般芯片的输入不都是高阻态的么?
此帖出自stm32/stm8论坛
 
 

回复

18

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

准双向IO

百度到的答案:
89C51单片机的P0~P3口不是标准意义的双向口 ,他只是准双向口
你可以对照着P0口的结构图看这段话,向端口写1,就是向锁存器写1,
也就是让其口输出FF,为什么,是这样的,给锁存器写1,那么锁存器
的反向端就输出0,那么和它相接的MOS管也就在截止状态,也就是呈高
阻态,这样P0口上数据就会从读引脚的三态缓冲器上正确的输入,如果
不写1,那么锁存器上次锁存的可能为0,那么反向端有可能出现1,这样
和反向端相接的MOS管就倒通,也就是直接拉到地,那么不管你P0口上输
入什么信号都会拉成低电平,输入就错了双向口与准双向口的区别主要是:准双向口I/O口操作时做数据输入时需要对其置1,否则若前一位为低电平,后一位输入的电平为高则MOS管拉不起来导致出错。而双向口则不需要做此动作,因为双向口有悬浮态。准双向口只能有效的读取0,而对1则是采用读取非零的方式,就是读入的时候要先向接口上写1,然后再读。真正的双向口正如其名,就是真正的双向io不需要任何预操作可直接读入读出
此帖出自stm32/stm8论坛
 
 

回复

70

帖子

4

TA的资源

一粒金砂(中级)

4
 
楼主的帖子帮了大忙了,哈哈哈
此帖出自stm32/stm8论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

5
 
yurl09mail 发表于 2012-11-5 00:16 在群里得到热心人士的回复,在此 表示感谢 ALIENTEK STM32交流高群17 最后一封信(975553987) 0:10 ...

谢谢,特意注册账号来回复,感谢,虽然你看不见

此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表