嵌入式STM32中I2C控制器外设详解

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整体控制逻辑

1通讯引脚

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-14 11:26:05       5 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-14 11:26:05       5 阅读
  3. 在Django里面运行非项目文件

    2024-05-14 11:26:05       4 阅读
  4. Python语言-面向对象

    2024-05-14 11:26:05       5 阅读

热门阅读

  1. 使用Django构建高效的Web应用

    2024-05-14 11:26:05       14 阅读
  2. C++算法——函数对象\谓词\内置仿函数

    2024-05-14 11:26:05       18 阅读
  3. chatGPT 凌晨发布会内容总结

    2024-05-14 11:26:05       15 阅读
  4. LINQ(四) ——使用LINQ进行对象类型初始化

    2024-05-14 11:26:05       20 阅读
  5. 分享四种CAD图纸加密方法,严防盗图

    2024-05-14 11:26:05       15 阅读
  6. 矩阵的特征分解

    2024-05-14 11:26:05       16 阅读
  7. 蓝桥杯-移动距离(最简单的写法)

    2024-05-14 11:26:05       17 阅读