STM32中的I2C外设主要负责IIC协议与外界进行通信,就像USART外设一样,我们在学习的过程中,需要抓住I2C应用的重点。
STM32在使用I2C协议时,可以通过两种方式,
一是软件模拟协议
意思是使用CPU直接控制通讯引脚的电平,产生出符合通讯协议标准的逻辑。例如,像点亮LED那样,直接给引脚输出高电平或者低电平,从而模拟I2C协议的通讯协议逻辑。
另一是硬件实现协议
通过STM32开发板上的I2C外设专门负责实现I2C通讯协议,只要配置好该外设,他就会自动根据协议要求产生通讯信号,收发数据并缓存起来,CPU只要检测该外设的状态和访问数据寄存器,就能完成数据收发。
这种由硬件外设处理I2C协议的方式减轻了CPU的工作,并且使软件的设计更加简单。
下面我们来讲解一下STM32开发板上的I2C外设
STM32的I2C外设可用作通讯的主机及从机,支持100Kbit/s和400Kbit/s的速率,支持7位、10位设备地址, 支持DMA数据传输,并具有数据校验功能。
STM32的I2C架构剖析
我们先来看一下I2C的逻辑框图
我们把I2C的逻辑框图大致分为4部分,1通讯引脚、2时钟控制逻辑、3数据控制逻辑、4整体控制逻辑