当前位置: 首页 > news >正文

STM32-I2C通信协议

目录

一:什么是I2C通信协议

二:I2C通信

三:I2C时序图

四:面试常见问题 


 

一:什么是I2C通信协议

I2C(Inter-Integrated Circuit)协议是一种串口通信协议,用于在集成电路之间传输数据。它使用两根线(数据线和时钟线)进行通信,支持多个设备总线连接。I2C是一种串行、半双工的总线,注意用于近距离、低速的芯片之间的通信。I2C的总线有两根双向信号线,一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步。

就是在串口通信上满足四个要求

  • 要求1:删掉一根通信线,防止资源浪费,只能在同一根线上进行发送和接收
  • 要求2:需要一个应答机制,没发送一个字节都有一次应答
  • 要求3:一根线上能同时接多个模块
  • 要求4:把异步协议改成同步的协议,另外加一根时钟线

二:I2C通信

  • I2C总线(Inter IC USB)是由Philips公司开发的一种通用数据总线
  • 两根通信线:SCL(Serial Clock) , SDA(Serial Data)
  • 同步、半双工
  • 带数据应答
  • 支持总线挂载多设备(一主多从,多主做从)

1.常见的I2C协议通信硬件

2.硬件电路

   

三:I2C时序图

2.发送一个字节

3.接收一个字节 

4.发送应答 

 5.指定地址写

6.指定地址读 

四:面试常见问题 

1.介绍一下什么是I2C协议?

2.画一下I2C协议的时序图?

3.为什么要用到上拉电阻?

4.如何解决访问冲突?


http://www.mrgr.cn/news/93553.html

相关文章:

  • Browser Use+DeepSeek的使用教程
  • LTC6804、LTC6811、LTC6813的使用
  • Linux 软硬链接
  • 音视频入门基础:RTP专题(14)——FFmpeg源码中,对H.264的各种RTP有效载荷结构的解析
  • python从入门到精通(二十四):python爬虫实现登录功能
  • 996引擎-问题处理:实现自定义道具变身卡
  • 【C++ 函数重载】—— 现代编译技术下的多态表达与性能优化
  • ubuntu22.04机器人开发环境配置
  • Elasticsearch 2025/3/7
  • 记录片《遇见大连》
  • LeetCode 哈希章节
  • window系统中的start命令详解
  • 网络编程-----服务器(多路复用IO 和 TCP并发模型)
  • Vue Hooks 深度解析:从原理到实践
  • STM32之软件SPI
  • Windows 内网渗透:名称解析协议与Responder欺骗
  • Zabbix 安装部署
  • 可视化+图解:轻松搞定链表
  • fiddler everywhere 绿色永久版
  • linux awk命令和awk语言