OpenEdv-开源电子网

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

关于IIC实验GPIO模式设置的问题

[复制链接]

69

主题

173

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
469
金钱
469
注册时间
2014-6-21
在线时间
0 小时
发表于 2014-8-23 11:06:41 | 显示全部楼层 |阅读模式
5金钱
(1)读取GPIO的输入状态,在配置为什么模式下需要先写1,然后读才能读正确?因为此实验部分代码用的是位带操作,没有使用库函数。
(2)在使用硬件IIC时,到底GPIO模式应该设置为什么模式?其中(7)是从网上看到的,表24摘自《STM32中文参考手册》



(3)如果是无上拉电阻,IO默认是高电平;需要读取IO的值,可以使用带上拉输入_IPU和浮空输入_IN_FLOATING和开漏输出_OUT_OD;浮空输入和开漏输出模式不正确吧,默认不是高电平吧?
(4)IIC实验中为什么SDA需要进行模式配置( SDA_IN上/下拉输入、SDA_OUT通用推挽输出),而SCL不需要进行模式配置了呢??

最佳答案

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

没有参考其他地方,只是推挽输出也可以使用而已。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2014-8-23 11:06:42 | 显示全部楼层
正99999点 发表于 2020-9-4 11:55
截图里面不是GPIO要设置为  开漏复用输出么?你这代码里面配置成 推挽输出是参考什么地方的?

没有参考其他地方,只是推挽输出也可以使用而已。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-8-23 12:57:28 | 显示全部楼层
SCL是单向的,SDA是双向的,所以。。。
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

69

主题

173

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
469
金钱
469
注册时间
2014-6-21
在线时间
0 小时
 楼主| 发表于 2014-8-23 19:40:17 | 显示全部楼层
回复【2楼】Badu_Space:
---------------------------------
SCL单向输出模式也应该要配置一下啊,另外其他三问呢?
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-8-23 19:42:00 | 显示全部楼层
回复【3楼】mengxiao1980:
---------------------------------
初始化的时候不是已经设置了么
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

69

主题

173

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
469
金钱
469
注册时间
2014-6-21
在线时间
0 小时
 楼主| 发表于 2014-8-23 19:43:46 | 显示全部楼层
恩恩,确实是。那其他几问呢?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2014-8-23 23:07:06 | 显示全部楼层
1,带上下拉输入模式写1是上拉.
2,复用输出,你的截图就告诉你答案了.
3,浮空输入也可以,开漏输出不行.
4,实验用的模拟IIC,SCL整个就是输出,不需要设置为输入,所以只有在初始化的时候设置推挽输出就完事了.

最后,楼主对IO理解不怎么清白,建议你好好百度下论坛网友对STM32 IO使用的总结.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

69

主题

173

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
469
金钱
469
注册时间
2014-6-21
在线时间
0 小时
 楼主| 发表于 2014-8-24 10:10:31 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
(1)你说的写1是向ODR写1,配置为上拉模式。我的意思是在什么模式下需要向端口写1,再读取GPIO的输入状态,才能读正确?
(2)都是复用输出,我的意思是哪个正确?
(3)浮空输入模式端口电压是个随机值,也不一定是高电平啊。开漏无外接上拉当然不会是高。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2014-8-24 23:15:54 | 显示全部楼层
回复【7楼】mengxiao1980:
---------------------------------
1,根据你自己的需要选择吧,自己多做实验,实践出真知.
2,两个都可以.复用开漏适合外加上拉电阻,有需要电平匹配的情况,比如接5V的设备,复用开漏就占优势了.
3,所以需要外加上下拉电阻.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2020-9-3
在线时间
1 小时
发表于 2020-9-4 11:55:26 | 显示全部楼层
正点原子 发表于 2014-8-23 23:07
1,带上下拉输入模式写1是上拉.
2,复用输出,你的截图就告诉你答案了.
3,浮空输入也可以,开漏输出不行.
4,实 ...

截图里面不是GPIO要设置为  开漏复用输出么?你这代码里面配置成 推挽输出是参考什么地方的?
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2020-9-3
在线时间
1 小时
发表于 2020-9-8 09:41:39 | 显示全部楼层
正点原子 发表于 2020-9-7 01:59
没有参考其他地方,只是推挽输出也可以使用而已。

那我感觉讲课的时候 还是严格按照芯片手册讲  比较好一点吧?这样不会给初学者带来困惑。
如有冒犯,抱歉了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2020-9-9 01:56:25 | 显示全部楼层
正99999点 发表于 2020-9-8 09:41
那我感觉讲课的时候 还是严格按照芯片手册讲  比较好一点吧?这样不会给初学者带来困惑。
如有冒犯,抱 ...

恩,后续我们会修改的
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-17 10:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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