模拟IIC

  1. 开始
  2. 停止
  3. 数据格式
  4. 应答信号
  5. 非应答信号

传输过程:
读取过程:

  1. 主机发送开始信号
  2. 主机广播7位设备地址 & 0xFE (最后一位为0:写入地址)
  3. 等待应答
  4. 主机发送8位寄存器地址
  5. 等待应答
  6. 主机发送开始信号
  7. 主机发送7位设备地址 | 0x01 (最后一位为1:读取地址)
  8. 等待应答
  9. 保存数据,主机返回非应答信号
  10. 发送停止信号

写入过程:

  1. 主机发送开始信号
  2. 主机广播7位设备地址 & 0xFE (最后一位为0:写入地址)
  3. 等待应答
  4. 主机发送8位寄存器地址
  5. 等待应答
  6. 发送 1 字节数据
  7. 等待应答
  8. 发送停止信号

应答信号:
IIC的数据都是 1 字节(8bit)传输的,主机每发送完 1 字节数据后会在时钟的第 9 个周期释放SDA数据总线(将SD设为输入),由接收器发送一个ACK(把数据总线SDA电平拉低)表示数据成功接受。

非应答信号:
在诗中的第 9 个脉冲周期释放数据总线,接收器不拉低数据总线表示一个NACK,NACK有两种用途:

  1. 一般表示接收器未成功接受数据字节
  2. 当接收器是主控制器时,它收到最后一个字节后,应该发送一个NACK信号来通知被控发送器结束数据发送,并释放总线,以便主控接收器发送一个停止信号STOP。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值