本帖最后由 wambob 于 2017-1-9 20:30 编辑
I2C(Inter-Integrated Circuit)是内部整合电路的称呼,是一种串行通讯总线,使用多主从架构,由飞利浦公司开发。
I2C串行总线有两根信号线,SDA(数据线)和SCL(时钟线)。 可以通过连到I2C总线上的所有器件的唯一的地址识别完成一对多的通讯。 在I2C总线上的器件有两类角色,即主机(Master)和从机(Slave)。
I2C总线在传送数据过程中有三种类型信号:
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
停止信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。
应答信号:接收数据的I2C器件在接收到8bit数据后,向发送数据的I2C器件发出特定的低电平脉冲,表示已收到数据。如CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。
mbed提供了I2C类来完成I2C主机功能。
第一次使用mbed的I2C,应答的地方不明白,读写LPC824lite板上的AT24c02 失败。
AT24c02的设备地址
写字节:
写页:
当前地址读
任意地址读
连续读
按照上面读写24c02,对于mbed的应答机制不太明白,读写失败。
|