OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4528|回复: 6

IO口配置成上拉输入为什么先让口全输出高电平呢

[复制链接]

29

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
170
金钱
170
注册时间
2018-8-3
在线时间
48 小时
发表于 2018-8-21 00:42:19 | 显示全部楼层 |阅读模式
1金钱
还有一个问题就是配置IO口的时候,配置成上拉输入为什么先让口全输出高电平呢?以下出自寄存器版本LCD章节。
#define DATAIN     GPIOB->IDR;   //数据输入        
GPIOB->CRL=0X88888888;                             //PB0-7  上拉输入
    GPIOB->CRH=0X88888888;                             //PB8-15 上拉输入
    GPIOB->ODR=0XFFFF;                                 //全部输出高

原子老师说的是,提供一个上拉,使在无输入的情况下保持1的状态。这有什么作用呢,如果本身这个口就没有接收到信号输入,可是读进来的不也就成了FF吗?如果信号正好是FF,读进来也是FF。可是这是两种不同的情况吧?
也就是这样做了之后即使某个IO没有输入信号,机器也会认为输入了高电平,为什么要这样呢?
假如,万一这个IO用途就是一个开关,输入高电平时灯亮,输入低时灯灭,默认它FF,岂不是默认了没输入的时候就是灯亮。

最佳答案

查看完整内容[请看2#楼]

保持上拉就是默认高电平。 你不喜欢可以按你自己的想法改,能用就行。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-8-21 00:42:20 | 显示全部楼层
保持上拉就是默认高电平。 你不喜欢可以按你自己的想法改,能用就行。
回复

使用道具 举报

0

主题

192

帖子

0

精华

高级会员

Rank: 4

积分
582
金钱
582
注册时间
2017-6-2
在线时间
192 小时
发表于 2018-8-21 09:09:04 | 显示全部楼层
IO做输入只能判断两种状态,高或者低,不能判断你没接输入的第三种状态,所以你要是希望没接的时候是高就上拉,希望是低就下拉。但是想判断是不是接输入了做不到
回复

使用道具 举报

2

主题

168

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
336
金钱
336
注册时间
2018-5-14
在线时间
69 小时
发表于 2018-8-21 09:52:53 | 显示全部楼层
本帖最后由 kvdong 于 2018-8-21 09:57 编辑

看到类似的问题,我总是想起一句话“成也萧何败也萧何”,套用过来就是“成也原子败也原子”。
原子的“不完全手册”写的太经典了,太适合新手了,反倒把好多新手们养成了不看官方手册的毛病。
这种问题其实看看官方手册自然就明白了。
IO口如果设置为上下拉输入的话,需要用到输出寄存器做配合,ODR相应位为1则为上拉输入,为0则为下拉输入。
也就是说,CR寄存器设置输入输出状态的时候,是没有直接设置“上拉”或“下拉”这两种状态的,只有一个“上下拉”,然后再用ODR作区分。
TIM图片20180821095605.png
回复

使用道具 举报

2

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
199
金钱
199
注册时间
2015-3-23
在线时间
35 小时
发表于 2018-8-21 10:04:03 | 显示全部楼层
楼主就是在钻牛角尖,你把默认状态改成灯灭不就行了么,不想上拉,浮空也可以
野蛮生长,不忘初心。
回复

使用道具 举报

10

主题

81

帖子

0

精华

初级会员

Rank: 2

积分
149
金钱
149
注册时间
2018-5-8
在线时间
27 小时
发表于 2018-9-11 16:58:48 | 显示全部楼层
kvdong 发表于 2018-8-21 09:52
看到类似的问题,我总是想起一句话“成也萧何败也萧何”,套用过来就是“成也原子败也原子”。
原子的“不 ...

成也嘻嘻,败也嘻嘻
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2019-9-19
在线时间
6 小时
发表于 2019-9-25 09:37:44 | 显示全部楼层
正点原子 发表于 2018-8-21 00:42
保持上拉就是默认高电平。 你不喜欢可以按你自己的想法改,能用就行。

微信截图_20190925093154.png 这个GPIO_MODE_IPU是上拉输入,是不是平时引脚的输入状态都是高电平,那什么时候是输入引脚是低电平?
例子:(STM32)PA3  <————TSYN
设置PA3为上拉输入的话,平时PA3的输入都是高电平。
然后TSYN输出低电平的话,PA3是不是就接收到低电平,PA3引脚的状态也变成低电平???请问是这个意思吗???
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 22:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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