I2C SCL线,STM32F4上的时钟问题

时间:2016-07-21 11:37:24

标签: microcontroller stm32 i2c stm32f4

在I2C接口中,

SCL,即使总线上没有设备,时钟线也会传输时钟信号?

我们如何调试I2C?

1 个答案:

答案 0 :(得分:1)

I2C总线主机不知道是否有从属设备连接到总线。

它所能做的就是通过将从机的地址发送到总线来启动与某个设备的通信(它可以是读或写操作)。如果主设备收到ACK,则确认,则表示从设备已准备好(并在总线上显示)进行通信。 NACK,不承认可能意味着奴隶没有准备好。如果请求超时意味着,总线上没有可用设备和特定地址。

现在,回到你的问题:

  

SCL,即使总线上没有设备,时钟线也会传输时钟信号?

是的,即使没有任何从设备,主设备启动通信时也会驱动时钟线。使用时钟,因为总线上有数据,从设备地址。

如下图所示,如果总线上没有从设备(带有该地址),则ACK不会出现的唯一区别。

enter image description here

现在至于调试,最好的情况是你可以买一个logic analyzer,(在eBay或aliexpress上有更便宜的版本)来捕捉公交车上实际发生的事情。上面的图片是使用一张图片制作的。