OpenEdv-开源电子网

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

【希望原子越来越好】关于IIC实验的疑惑?

[复制链接]

6

主题

16

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2016-7-22
在线时间
11 小时
发表于 2016-7-29 11:41:10 | 显示全部楼层 |阅读模式
2金钱
1.PNG
初始化IIC时候,我们已经默认SCL和SDL是推挽输出。
2.PNG
在头文件中我们设置SDL为输入或者输出。
1.PNG
问题是
在应答模式下,我们首先设置SDA是输入模式。怎么后边还能写IIC_SDA=1(这个不是输出模式吗?)
我觉得应该先写成:   先是输出,然后再改变成输入模式。
                        IIC_SDA=1;delay_us(1);          
                        IIC_SCL=1;delay_us(1);       
                        SDA_IN();   
不知道原子大哥,这么安排有什么特殊的地方吗?

最佳答案

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

SDA_IN的时候,STM32的ODR寄存器,用来控制上下拉电阻!! 所以,在输入摸索下,SDA=1是设置上拉。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165359
金钱
165359
注册时间
2010-12-1
在线时间
2110 小时
发表于 2016-7-29 11:41:11 | 显示全部楼层
SDA_IN的时候,STM32的ODR寄存器,用来控制上下拉电阻!! 所以,在输入摸索下,SDA=1是设置上拉。
回复

使用道具 举报

5

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2014-5-3
在线时间
1 小时
发表于 2016-7-29 11:45:11 | 显示全部楼层
个人感觉如果很规范的写应该是下面这样吧:
SDA_OUT();
IIC_SDA=1;delay_us(1);           
IIC_SCL=1;delay_us(1);      
SDA_IN();   
回复

使用道具 举报

4

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
282
金钱
282
注册时间
2014-2-20
在线时间
27 小时
发表于 2016-7-29 11:58:26 | 显示全部楼层
释放总线
回复

使用道具 举报

6

主题

16

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2016-7-22
在线时间
11 小时
 楼主| 发表于 2016-7-29 12:31:03 | 显示全部楼层
stm32fans 发表于 2016-7-29 11:45
个人感觉如果很规范的写应该是下面这样吧:
SDA_OUT();
IIC_SDA=1;delay_us(1);           

这样也可以,其实默认的情况是初始化已经推挽输出了。
回复

使用道具 举报

5

主题

103

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
235
金钱
235
注册时间
2014-11-26
在线时间
25 小时
发表于 2016-7-29 13:06:30 | 显示全部楼层
这个目的是为了释放总线,如果你在设置成输入的时候,然后设置SDA成高电平,发送应答信号的器件在SCL变成高的时候可以拉低SDA,如果写成你的那种方式,在SCL变成高的时候,SDA_IN()还没有设置,这样应答器件就没法拉低SDA了,数据就通信错误了
回复

使用道具 举报

6

主题

16

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2016-7-22
在线时间
11 小时
 楼主| 发表于 2016-7-29 14:52:22 | 显示全部楼层

麻烦你,解释的清楚一些。感谢
回复

使用道具 举报

4

主题

52

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
282
金钱
282
注册时间
2014-2-20
在线时间
27 小时
发表于 2016-7-29 16:57:01 | 显示全部楼层
谦190 发表于 2016-7-29 14:52
麻烦你,解释的清楚一些。感谢

5楼有解释。
回复

使用道具 举报

6

主题

16

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2016-7-22
在线时间
11 小时
 楼主| 发表于 2016-7-31 08:32:30 | 显示全部楼层
原子哥,能解释的明白些吗?昨天看了一天还是不明白
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165359
金钱
165359
注册时间
2010-12-1
在线时间
2110 小时
发表于 2016-7-31 10:19:47 | 显示全部楼层
谦190 发表于 2016-7-31 08:32
原子哥,能解释的明白些吗?昨天看了一天还是不明白

去看IO口的功能.
论坛搜索下,有人发过帖子.
STM32的IO口有8种模式
其中一种是带上/下拉的输入模式.
这里的上拉,下拉就是通过设置ODR来控制
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

13

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
421
金钱
421
注册时间
2015-12-3
在线时间
46 小时
发表于 2016-8-1 18:53:58 | 显示全部楼层
@正点原子 原子哥,请问为什么我的IO口用6,7脚不行啊,可是改为10,11就行了?而且的前边的PWMDAC实验引脚也是跟讲的不对应,PA8改为PB4才行,为什么啊?
学到老,活到老
回复

使用道具 举报

6

主题

16

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2016-7-22
在线时间
11 小时
 楼主| 发表于 2016-8-2 16:08:58 | 显示全部楼层
天际超体 发表于 2016-8-1 18:53
@正点原子 原子哥,请问为什么我的IO口用6,7脚不行啊,可是改为10,11就行了?而且的前边的PWMDAC实验引脚 ...

你用的自己的开发板还是原子的开发板?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165359
金钱
165359
注册时间
2010-12-1
在线时间
2110 小时
发表于 2016-8-3 21:38:06 | 显示全部楼层
天际超体 发表于 2016-8-1 18:53
@正点原子 原子哥,请问为什么我的IO口用6,7脚不行啊,可是改为10,11就行了?而且的前边的PWMDAC实验引脚 ...

1,看和其他IO是否冲突.
2, 检查配置
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

13

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
421
金钱
421
注册时间
2015-12-3
在线时间
46 小时
发表于 2016-8-5 11:45:07 | 显示全部楼层
正点原子 发表于 2016-8-3 21:38
1,看和其他IO是否冲突.
2, 检查配置

我买的,跟你讲的视频里边的开发版不太一样没有写着战舰,只在触摸按键哪里有一个warship
是不是旧板子是那样的啊?
学到老,活到老
回复

使用道具 举报

13

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
421
金钱
421
注册时间
2015-12-3
在线时间
46 小时
发表于 2016-8-5 11:45:21 | 显示全部楼层
谦190 发表于 2016-8-2 16:08
你用的自己的开发板还是原子的开发板?

原子的
学到老,活到老
回复

使用道具 举报

2

主题

19

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
204
金钱
204
注册时间
2016-12-24
在线时间
22 小时
发表于 2017-7-25 14:50:51 | 显示全部楼层
1376115749 发表于 2016-7-29 13:06
这个目的是为了释放总线,如果你在设置成输入的时候,然后设置SDA成高电平,发送应答信号的器件在SCL变成高 ...

楼主解释得到位,豁然开朗
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-12-23 12:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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