打印
[MCU]

请教简单快速理解I2C原理

[复制链接]
1691|30
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
guojihongwhpu1|  楼主 | 2016-8-4 11:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
oayzw| | 2016-8-4 11:15 | 只看该作者
书读百遍,其义自见

使用特权

评论回复
板凳
ayb_ice| | 2016-8-4 11:39 | 只看该作者
续续看

使用特权

评论回复
地板
lxyppc| | 2016-8-4 12:52 | 只看该作者
把你不明白的写出来,你就明白了

使用特权

评论回复
5
guojihongwhpu1|  楼主 | 2016-8-4 17:04 | 只看该作者
oayzw 发表于 2016-8-4 11:15
书读百遍,其义自见

都看了几年了,还是没有明白,因为一直都是做硬件方面的,编程都是平时自己看书学,一个人学太慢了,有的不能很清楚的理解

使用特权

评论回复
6
guojihongwhpu1|  楼主 | 2016-8-4 17:05 | 只看该作者

可能看到80岁才能看懂

使用特权

评论回复
7
guojihongwhpu1|  楼主 | 2016-8-4 17:06 | 只看该作者
lxyppc 发表于 2016-8-4 12:52
把你不明白的写出来,你就明白了

说不清楚,没有实践做过项目,所以问的也是一头雾水吧

使用特权

评论回复
8
oayzw| | 2016-8-4 17:08 | 只看该作者
对暗号而已,没那么复杂吧
把那些你懂了的写到这,没懂得也写到这
然后。。。

使用特权

评论回复
9
mcu5i51| | 2016-8-5 08:07 | 只看该作者
老师:"提问A同学"
A:"好的"
老师:"XXXXXXXX"
A:"........"
老师:"XXXXXXXX"
A:"........"
老师:"完成,请坐"
老师:"提问B同学"
B:"好的"
老师:"XXXXXXXX"
B:"..."
老师"继续"
B:"..."
老师:"完成,请坐"
老师:"C同学,记录一下"
C:"好的"
老师:"...................."
C:'好了"
老师:"完成,请坐"

使用特权

评论回复
评论
datouyuan 2016-8-5 11:05 回复TA
赞一个,IIC差不多就这意思.一主多从,起始,结束,应答. 
10
zealy| | 2016-8-5 09:07 | 只看该作者
其实就是几个时序,找个带I2C的产品把读写时序用示波器抓一遍,然后对着协议去分析,比看再多的资料都有领悟的

使用特权

评论回复
11
pywmiss| | 2016-8-5 10:07 | 只看该作者
本帖最后由 pywmiss 于 2016-8-5 10:12 编辑

我也自己学的。。
大概是这样:
        一条线负责时钟信号,,,这条线。。。只管按照一定的时间频率。。。输出高电平,低电平 。。像晶振
       另一条线负责数据信号,,,就是说如果要输出1==就是高电平,输出0==就是低电平
          这两个线高低电平变化也要有时机配合。。。。细节自己再看看哦。。。
就像楼上说的对密码。。这个密码你知道,我也知道 。。。那么我们都按这个方面互相发数据。。我们两人都知道了。。。。当然越多人知道这个密码就越多人能读懂。。。给这种传送方式起个名字吧。。就叫  I2C
然后很多单片机都用这个了。。。就很多单片机都用。。

使用特权

评论回复
12
diweo| | 2016-8-5 11:14 | 只看该作者
就2根线,一根时钟线SCL,一根数据线SDA.
SCL没什么,就是周期性的一高一低一高一低。。。。
那数据怎么传送呢?          规定:SCL为低的时候,允许SDA变化(就是根据需要,输出0或1),这样当SCL变高的时候就把SDA上的数据锁存了。
那SCL为高的时候,SDA可否变化呢?      可以,不过这时候SDA不表示0或者1了。而是2个特殊状态,从1变0表示起始位,从0变1表示结束位。

使用特权

评论回复
13
冰零分子| | 2016-8-5 11:22 | 只看该作者
软件模拟一遍估计就懂了

使用特权

评论回复
评论
autopccopy 2016-8-5 12:13 回复TA
非常赞同! 
14
guojihongwhpu1|  楼主 | 2016-8-5 11:45 | 只看该作者
diweo 发表于 2016-8-5 11:14
就2根线,一根时钟线SCL,一根数据线SDA.
SCL没什么,就是周期性的一高一低一高一低。。。。
那数据怎么传 ...

请问下SCL和SDA有什么逻辑关吗?还是相互独立控制的?

使用特权

评论回复
15
guojihongwhpu1|  楼主 | 2016-8-5 11:46 | 只看该作者
冰零分子 发表于 2016-8-5 11:22
软件模拟一遍估计就懂了

我看到有用普通I/O口模拟的代码,看的头晕,总感觉一头雾水的,好像明白了,但是又好像没有明白,所以还是不懂

使用特权

评论回复
16
guojihongwhpu1|  楼主 | 2016-8-5 11:49 | 只看该作者
pywmiss 发表于 2016-8-5 10:07
我也自己学的。。
大概是这样:
        一条线负责时钟信号,,,这条线。。。只管按照一定的时间频率。。 ...

我现在自学PIC单片机,不知道多久能学会,别人说I2C都是最基本的,我连最基本都搞的一头雾水了,慢慢学吧

使用特权

评论回复
17
guojihongwhpu1|  楼主 | 2016-8-5 11:51 | 只看该作者
pywmiss 发表于 2016-8-5 10:07
我也自己学的。。
大概是这样:
        一条线负责时钟信号,,,这条线。。。只管按照一定的时间频率。。 ...

我也知道是那么个回事,两个器件要通讯,肯定要遵循一个规则,否则就乱套了,但是怎么个实现,我还是没有十分明白

使用特权

评论回复
18
pywmiss| | 2016-8-5 16:37 | 只看该作者
guojihongwhpu1 发表于 2016-8-5 11:51
我也知道是那么个回事,两个器件要通讯,肯定要遵循一个规则,否则就乱套了,但是怎么个实现,我还是没有 ...

大概知道原理就好 了。。细节不用管太多。。不然,你要知道的就太多了。。还有SPI,UART,....好多的
例程下载一个试试。。。仿真学习一下就好了

使用特权

评论回复
19
guojihongwhpu1|  楼主 | 2016-8-5 17:05 | 只看该作者
pywmiss 发表于 2016-8-5 16:37
大概知道原理就好 了。。细节不用管太多。。不然,你要知道的就太多了。。还有SPI,UART,....好多的
例程 ...

谢谢,你这样一说,我就轻松多了。。。

使用特权

评论回复
20
changle11sdo5| | 2016-8-5 17:17 | 只看该作者
我都是用普通io口模拟I2C通信,一看代码就明白了

使用特权

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

本版积分规则

72

主题

3397

帖子

17

粉丝