固定多主机模式:在固定多主机模式下,主机的角色是固定的,每个主机都有一个唯一的地址。在通信过程中,只有一个主机拥有总线的控制权,其他主机处于被动状态。只有获得控制权的主机才能发送数据或接收数据。当一个主机完成通信后,它会释放总线的控制权,其他主机才能接管。
可变多主机模式:在不定多主机模式下,主机的角色可以动态切换,每个主机都可以请求总线的控制权。当一个主机想要发送数据时,它会发送一个请求信号,如果没有其他主机正在使用总线,它就可以获得控制权并进行通信。如果有其他主机正在使用总线,那么请求的主机需要等待,直到总线空闲为止。在这种模式下,主机之间需要通过协议来协调和管理总线的使用。
STM32默认是可变多主机模式,即STM32一开始也是从机。
注意:
7位主发送中第一个字节是地址字节(七个地址位+1个读写标志位)。
10位主发送前俩个字节都是地址字节,第一个字节是固定标志位11110+2位地址+1位读写位,第二个字节是8位地址构成10位寻址。
注意:如果不想接收数据了,需要在最后一个接收时序前提取将ACK应答位置为0,并且设置终止条件请求。