OpenEdv-开源电子网

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

把IO口设置成输入,又让其输出1是什么意思?

[复制链接]

18

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
138
金钱
138
注册时间
2013-7-6
在线时间
0 小时
发表于 2013-8-31 11:12:26 | 显示全部楼层 |阅读模式
            


上面是一个IIC程序的一部分,把SDA设置成了输入,那它就只是可读的(输入),为啥又以输出的格式写出程序。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2018-8-25
在线时间
2 小时
发表于 2018-8-25 17:14:46 | 显示全部楼层
stm32的GPIO可以设置成8中模式:
1、推挽通用输出
2、开漏通用输出
3、推挽复用功能输出
4、开漏复用功能输出
5、模拟输入
6、浮空输入
7、下拉输入
8、上拉输入

设置成第7种或第8种模式后,即可以让端口接收输入的同时上拉或下拉该端口。这个是stm32的一个比较强大的功能,呵呵。

需要注意的是,下拉输入和上拉输入是通过端口输出寄存器GPIOx_ODR寄存器来区分的。假如忘记设置ODR,默认值为0,下拉。

回复 支持 1 反对 0

使用道具 举报

2

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2013-7-22
在线时间
0 小时
发表于 2013-8-31 11:46:01 | 显示全部楼层
因为IIC程序中是“线与”的关系,置高后才能读出
回复 支持 反对

使用道具 举报

18

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
138
金钱
138
注册时间
2013-7-6
在线时间
0 小时
 楼主| 发表于 2013-8-31 12:03:39 | 显示全部楼层
我的意思是设置成输入模式,但是以输出格式书写。你没明白我的意思,IO设置成输入,按道理就不能把他当输出使用
回复 支持 反对

使用道具 举报

18

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
138
金钱
138
注册时间
2013-7-6
在线时间
0 小时
 楼主| 发表于 2013-8-31 12:04:18 | 显示全部楼层
这里这样写,它的电平变化是什么样的?
回复 支持 反对

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2013-8-31 13:26:53 | 显示全部楼层
默认拉高
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-31 16:55:57 | 显示全部楼层
回复【3楼】lingyue502:
---------------------------------
你不知道STM32的IO口有上下拉电阻的功能么?
如果不知道,那就了解下。
你在楼主位的问题,说明你对STM32的IO理解不透彻,STM32的IO可以设置为输入,并且上下拉可控,这个可控就是通过ODR控制上下拉。所以一点都不矛盾。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2013-8-31 17:42:36 | 显示全部楼层
回复【3楼】lingyue502:
---------------------------------
这个道理按错了……STM32IO设置了多种寄存器以满足不同的功能。设置成输入后,再设置ODR寄存器,就形成了上拉输入。
回复 支持 反对

使用道具 举报

18

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
138
金钱
138
注册时间
2013-7-6
在线时间
0 小时
 楼主| 发表于 2013-9-1 19:45:05 | 显示全部楼层
恩,谢谢
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2017-7-19
在线时间
6 小时
发表于 2017-7-19 11:52:14 | 显示全部楼层
正点原子 发表于 2013-8-31 16:55
回复【3楼】lingyue502:
---------------------------------
你不知道STM32的IO口有上下拉电阻的功能么?
...

能说的详细一点吗?还是不懂
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2017-7-19
在线时间
6 小时
发表于 2017-7-19 11:53:10 | 显示全部楼层
lingyue502 发表于 2013-8-31 12:03
我的意思是设置成输入模式,但是以输出格式书写。你没明白我的意思,IO设置成输入,按道理就不能把他当输出 ...

这个问题不知掉你懂了没有?
回复 支持 反对

使用道具 举报

9

主题

165

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
251
金钱
251
注册时间
2018-4-6
在线时间
31 小时
发表于 2018-8-25 17:31:04 | 显示全部楼层
ricefat 发表于 2013-8-31 17:42
回复【3楼】lingyue502:
---------------------------------
这个道理按错了……STM32IO设置了多种寄存器以 ...

受教了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 00:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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