① I2C(Inter-Integrated Circuit)总线是由飞利浦公司开发的两线式串行总线,用于连接微控制器及其外围设备 ② I2C总线有两根双向信号线 (1)SDA:Serial Data Line(数据线) (2)SCL:Serial CLock Line(时钟线) ③ I2C总线寻址 (1)I2C总线协议规定,从设备采用7位的地址. * D7~D0:从设备地址 * D0位:数据的传送方向.“0”表示主设备向从设备写数据:“1”表示主设备由从设备读数据 注:主设备发送地址时,总线上
上图是TPS65987的i2c读写协议,和标准i2c协议有点出入,不过也不难理解,在读的时候i2c slave在发送数据过来之前会先发送1byte数据表示后面会有几个字节数据过来,在写的时候i2c host要先写1byte数据告诉i2c slave接下来会写几个bytes数据. Talk is cheap. Show me the code. 以下代码是基于STM8S. /*************************************************************
1.I2C协议个. 2.1 I2CADR 地址寄存器CPU也可以是I2C的Slave,CPU的I2C地址有 I2CADR指定 2.2 I2CFDR 频率设置寄存器The serial bit clock frequency of SCL is equal to the CCB clock divided by the divider.用来设置I2C总线频率2.3 I2CCR 控制寄存器MEN: Module Enable. 置1时,I2C模块使能MIEN:Module Interrupt