|
冲哥的voidIIC_Read_NByte( u8 slave,u8 addr,u8 *p,u8 number ) //iic读取连续的几个字节 实际是随机读:
2.随机读 随机读需先写一个目标字地址,一旦EEPROM接收器件地址和字地址并应答了ACK,主器件就产生一个重复的起始条件。 然后,主器件发送器件地址(读/写选择位为"1"),EEPROM应答ACK,并随时钟送出数据。主器件无需应答"0",但需发送停止条件(见图13)。 主机发送启动信号→发送7位地址+1位W写命令(形成寻址写命令字)→主机等待芯片应答“A” →主机收到应答“A”后发送芯片内要读出的地址→主机等待芯片应答“A” →主机收到应答“A”后发送启动信号(可以内含有条件)→发送7位地址+1位R读命令(形成寻址读命令字)→ 主机等待芯片应答“A” →主机收到应答“A” →24C04应答ACK后,并随时钟送出数据。主器件无需应答"0"……….→主机最后后发送停止信号“P”
基本一致,就是多了一个应答"0",其实这里主器件无需应答"0"……….直接→主机最后后发送停止信号“P”。不过习惯了应答,看上去顺眼点(老实讲,20年前至今许多学习这里也是应答“0”的)
|