STM32之I2C通信概览
主要掌握一主多从模式,每个从机设定一个唯一的设备地址,主机会叫从机的名字即发出从机的地址,从机会比较此地址是否跟自己的一样,如果一样就相应。一般地址的最后几位可以改变,可变的地址位对应相应的引脚。下为硬件电路
下图这种情况就是短路,需要避免,所以需要禁止所有设备输出强上拉的高电平,采用外置弱上拉电阻加开漏输出的结构。上图右边是具体结构。
好处:
第一,完全杜绝了电源短路现象
第二,避免了引脚模式的频繁切换
第三,线与现象,只有都输出高电平才输出高电平
指定地址写,指定的从机指定的寄存器地址下写入。首先拉低SDA产生起始条件,然后发送一个字节,即从机地址7位加读写位1位,读写位置1或者置0控制读写。主机接受从机产生应答,再发送的字节送到了指定设备的内部就是寄存器的地址,接着就是应答,表示收到了,然后就是发送的数据,再产生接收应答,然后是终止条件。
当前地址读不用指定当前地址。直接发送数据。
指定地址写+当前地址读=指定地址读,即再指定地址写的时候加上当前地址读。指定地址写和指定地址读用的比较多。