打印
[51单片机]

关于I2C总线的问题

[复制链接]
1329|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1280486281|  楼主 | 2017-12-1 10:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
1280486281|  楼主 | 2017-12-1 10:41 | 只看该作者
没人吗

使用特权

评论回复
板凳
jiangjiayu| | 2017-12-1 16:15 | 只看该作者
对啊,ACK就是低啊

使用特权

评论回复
地板
linqing171| | 2017-12-1 21:36 | 只看该作者
一个时钟一位,你发了8位了, 他发一位应答, 你发个时钟它就知道你已经读过了, 会释放sda的.
在读的时候, 它发8位后,如果你要继续读,你也要发个应答,   如果你不读了,就发  非应答.

使用特权

评论回复
5
aizaixiyuanqian| | 2017-12-1 22:19 | 只看该作者
空闲时要记得拉高

使用特权

评论回复
6
h286288986| | 2017-12-3 11:57 | 只看该作者
看时序写,不要问为什么,多理清下思路!

使用特权

评论回复
7
NE5532| | 2017-12-3 22:17 | 只看该作者
SDA是你自己控制的,你问人家干吗?从器件要声明在忙,只会拉低SCL。另外你问的是写入1Byte以后ACK为低么?是这个的话,请看协议,仔细看。

使用特权

评论回复
8
ningling_21| | 2017-12-4 11:03 | 只看该作者
SDA受程序控制,关键看程序怎么写的

使用特权

评论回复
9
1280486281|  楼主 | 2017-12-4 15:12 | 只看该作者
linqing171 发表于 2017-12-1 21:36
一个时钟一位,你发了8位了, 他发一位应答, 你发个时钟它就知道你已经读过了, 会释放sda的.
在读的时候, 它 ...

发了8位后, 我程序吧sda拉高释放了等应答,但是8位后,sda一直低电平

使用特权

评论回复
10
linqing171| | 2017-12-4 20:25 | 只看该作者
1280486281 发表于 2017-12-4 15:12
发了8位后, 我程序吧sda拉高释放了等应答,但是8位后,sda一直低电平

低电平就是应答了啊.
如果被上拉电阻拉高了, 才是芯片没有焊好,没有芯片来应答.

你发个时钟,它就应答释放了, 让你继续发.

使用特权

评论回复
11
1280486281|  楼主 | 2017-12-5 09:32 | 只看该作者
linqing171 发表于 2017-12-4 20:25
低电平就是应答了啊.
如果被上拉电阻拉高了, 才是芯片没有焊好,没有芯片来应答.

我的意思是我发8位数据后,先把sda释放了,然后第九个时钟,等应答,可是8位数据后,sda拉不高,释放不了呀。在第九个时钟之前sda一直低电平,这就不对呀

使用特权

评论回复
12
1280486281|  楼主 | 2017-12-5 09:34 | 只看该作者
NE5532 发表于 2017-12-3 22:17
SDA是你自己控制的,你问人家干吗?从器件要声明在忙,只会拉低SCL。另外你问的是写入1Byte以后ACK为低么? ...

发完8位后,我把sda拉高了,没起作用呀

使用特权

评论回复
13
linqing171| | 2017-12-5 23:19 | 只看该作者
1280486281 发表于 2017-12-5 09:32
我的意思是我发8位数据后,先把sda释放了,然后第九个时钟,等应答,可是8位数据后,sda拉不高,释放不了 ...

那是它已经应答了.
在SDA中间用刀子割开, 串连200欧姆电阻, 这样两边输出的低电平就不一样了, 用示波器就知道谁输出的低了.

使用特权

评论回复
14
NE5532| | 2017-12-6 08:15 | 只看该作者
1280486281 发表于 2017-12-5 09:34
发完8位后,我把sda拉高了,没起作用呀

这个叫应答,请仔细看协议。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

40

帖子

0

粉丝