Master模式:
1) 发送 START 信号成功,状态寄存器的值=0x08
2) 作为 I2C Master 没有发送 STOP 又发送 START 信号成功,状态寄存器的值=0x10
3) 发送地址+W 成功并收到 ACK,状态寄存器的值=0x18
4) 发送地址+W 成功并收到 NACK,状态寄存器的值=0x20
5) 发送数据成功并收到 ACK,状态寄存器的值=0x28
6) 发送数据成功并收到 NACK,状态寄存器的值=0x30
7) Master发生仲裁失败,发生 I2C中断,STATUS寄存器的值=0x38
8) 发送地址+R 成功并收到 ACK,状态寄存器的值=0x40
9) 发送地址+R 成功并收到 NACK,状态寄存器的值=0x48
10) 收到数据并返回 ACK,状态寄存器的值=0x50
11) 收到数据并返回 NACK,状态寄存器的值=0x58
12) 总线错误,状态寄存器的值=0x00
Slave模式:
1) 收到 RE-START 信号或者 STOP 信号,状态寄存器的值=0xA0
2) 收到 SLA+R 信号并返回 ACK,状态寄存器的值=0xA8
3) 作为 Master 仲裁失败 HW 会自动转为 Slave,之后收到 SLA+R 信号, 状态寄存器的值=0xB0
4) 发送数据并收到 ACK,状态寄存器的值=0xB8
5) 发送数据并收到 NACK,状态寄存器的值=0xC0
6) 从接发送最后一个数据,但是居然收到的是 ACK,状态寄存器的值=0xC8
7) 从接收到 SLA+W 并返回 ACK,状态寄存器的值=0x60
8) 作为 Master 仲裁失败 HW 会自动转为 Slave,之后收到 SLA+W 信号, 状态寄存器的值=0x68
9) 收到数据并返回 ACK,状态寄存器的值=0x80
10) 收到数据并返回 NACK,状态寄存器的值=0x88
广播模式:
11) 广播模式收到 SLA+W 并返回 ACK,状态寄存器的值=0x70
12) 广播模式仲裁失败,发生 I2C中断,STATUS寄存器的值=0x78
13) 广播模式收到数据并返回 ACK,状态寄存器的值=0x90
0