读写: 用来判断是写状态还是读状态。
缓存满: 用来判断缓冲区是否满
我们以随机地址读取为例:讲讲程序执行的过程
1,从单片机接收到启示位和设备地址中断:我们判断 SSP1STAT 的状态位
为(写状态,地址,缓存满,接收到启示位) 然后读取缓存中的设备地址, 接着在
读取 需要读/写的数据地址。
2,单片机再次接收到设备地址:我们判断是 SSP1STAT 的状态为(读状态)
然后从设备就输出数据
我们以写字节数据为例:
1,从单片机接收到启示位和设备地址中断:我们判断 SSP1STAT 的状态位
为(写状态,地址,缓存满,接收到启示位) 然后读取缓存中的设备地址, 接着在
读取 需要读/写的数据地址。
2,单片机判断 SSP1STAT 的状态位为(写状态,数据,缓存满)那么单片机
就接收输入的数据。
初始化设置:
1,设置 I2C 通信的两引脚为 CLK SCL 为输入,
TRISB6 = input;
TRISB4 = input;
2,将 MSSP 设置为 I2C 从模式,七位从地址
SSP1CONbits.SSPM0 = 0;