关于iic总线字节传输的问题

在传输一个字节的时候是从高位开始传输还是从低位开始传输是iic总线规定的吗?比如我在一个AD转换芯片的数据手册中就没有找到关于顺序的说明。如果实用别的协议的话是不是这个顺序一定要说明还是约定俗成的还是别的情况

i2c有定义 字节格式
发送到SDA 线上的每个字节必须为8 位,每次传输可以发送的字节数量不受限制。每个字节后必须跟一个响应位。首先传输的是数据的最高位(MSB),如果从机要完成一些其他功能后(例如一个内部中断服务程序)才能接收或发送下一个完整的数据字节,可以使时钟线SCL 保持低电平,迫使主机进入等待状态,当从机准备好接收下一个数据字节并释放时钟线SCL 后数据传输继续。

意思是如果你发送 0x01 那么前面很多个0一定是第一个发送出去的(msb),1是最后发送出去的(lsb)

一般的话,如果你的 ad 转换器是有 I2c接口,那么就直接连接到单片机的i2c好了,具体通讯细节无需考虑
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-16
用AT89S51写AT24C01,AT24CO1的地址是怎样确定的,下面程序为什么它发送完了读取写控制字之后不用发写在AT24CO1的首地址吗?
LCALLSTA;发送起始条件
MOVA,,#0A0H读取写控制字
LCALLWRB;发送一个字节
LCALLCACK;检查应答位
JBF0,WRBYTE1;无应答,重发
MOVR0,#DTSV;欲发送数据首址
MOVR5,KEYNUM;R5保存欲发送数据的字节数
WRDA:MOVA,@R0;读一个字节数据
LCALLWRB;发送写控制字节
LCALLCACK;检查应答位
JBF0,WRBYTE1;无应答,重发
DECR0
DJNZR5,WRDA;未发送完N个字节继续
LCALLSTOP;数据发送完毕,停止
POPPSW;恢复现场
RET
相似回答