
I2C从模式编程之空闲状态 本I2C专题涉及I2C主模式和从模式,并以STM32F407系列MCU做为示例。我们首先总结I2C从模式编程时遇到的各种各样的问题及解决办法,欢迎大家持续关注。 I2C总线有四种状态:空闲、启动、忙碌、停止。本帖子主要聊一聊“空闲状态”: 当总线为空闲状态时,SDA和SCL两条信号线一定都是高电平,但是SDA和SCL两条线路都是高电平时,并不一定是总线空闲状态,比如当总线正在传输数据“1”——SDA和SCL都是高电平,但此时并不是总线空闲状态。所以,总线空闲状态不但要求SDA和SCL线要同时为高电平,而且还要求同时为高电平的保持时间不小于tBUF(tBUF:标准模式≥4.7us,快速模式≥1.3us,快速增强模式≥0.5us,超快模式≥80ns),至少1bit位的发送时间。 I2C总线的两种空闲状态波形图 1、图中上图是设备第一次启动前的空闲状态, 其满足条件为:SDA和SCL同为高电平,且保持时间较长(此处官方没给出具体参数,但不应小于第二种空闲状态高电平保持时间tBUF); 2、图中下图是设备停止总线后,再启动前的空闲状态,其满足条件为:SDA和SCL同为高电平,且保持时间≥tBUF(tBUF:标准模式≥4.7us,快速模式≥1.3us,快速增强模式≥0.5us,超快模式≥80ns)。 值得注意的是,I2C总线在工作中的热启动之前(SDA和SCL同为高电平)的状态,协议判定为忙碌状态而非空闲状态。 |
哪里能下载ST官方展示的NUCLEO-G071RB配合X-NUCLEO-GFX01M1运行TouchGFX案例的源程序?
I2C从模式编程之STOP中断
stm32mp257_spidev如何在arm中正常使用?
简单聊聊STM32的SPI外设
Stem32CubeIDE能像Keil一样指定不同文件下的代码编译到不同的FLASH地址吗?比如部分代码存放到内部FLASH,另一部分存放到外部QSPI的FLASH中
stm32cubemx 创建STM32H747I工程 M7正常M4为什么不正常KEIL工程.c文件上面有减号标志
学习应用TouchGFX通过哪种途径比较好
STM32CubeIDE在线调试的时候如何让watch的变量实时刷新
STM32开发板一般都会配置arduino接口
官方开发板demo工程路径