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

STM32之I2C硬件外设

在这里插入图片描述
在这里插入图片描述
注意:硬件I2C的引脚是固定的
SDA和SCL都是复用到外部引脚。
SDA发送时数据寄存器的数据在数据移位寄存器空闲的状态下进入数据移位寄存器,此时会置状态寄存器的TXE为1,表示发送寄存器为空,然后往数据控制寄存器中一位一位的移送数据。接收时数据控制寄存器中的数据一位一位的从引脚移位到数据移位寄存器中,当一个数据以为完成后就从数据移位寄存器中转移到数据寄存器,同时置RXNE表示接收寄存器非空。自身地址寄存器时STM32作为从机时的地址,比较器会比较主机的发出的地址与自身地址是否匹配,如果匹配就响应主机的召唤。STM32支持同时响应两个主机的召唤,所以有双低地址寄存器。PEC是用来数据校验的模块,执行CRC数据校算。

SCL的时钟控制是用来控制SCL的,时钟控制寄存器写对应的位,电路就会启用对应的功能,控制逻辑电路写入控制寄存器可以对电路进行控制,读取状态寄存器,可以读取电路的状态。
在这里插入图片描述
注意:使用I2C的时候,两个GPIO口都要配置成复用开漏输出的模式。此时是片上外设控制引脚电平。在这里插入图片描述
图中线路对应SDA的GPIO的连个箭头。分别对应输出和输入。

硬件I2C的操作流程:

在这里插入图片描述
7位主发送:
1.产生开始条件
2.EV5标志位,表示起始条件已发送,发送从机地址,然后等待从机应答A,如果没有应答就会产生中断
3.EV6事件:表示地址发送结束
4.EV8_1事件:准备好发送
5.EV8事件:表示可以写入下一个数据
6.EV8_2:表示数据发送完,可以产生终止条件在这里插入图片描述
7位主接收:
1.EV5:起始条件已经发送
2.寻址接收应答A
3.EV6:代表寻址已完成
4.EV6_1:表示数据正在移位
5.EV7:表示收到一个字节的数据
6.EV7_1:表示想要结束


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

相关文章:

  • C语言100天练习题【记录本】
  • STM32之硬件SPI
  • 苦瓜书盘官网,免费pdf/mobi电子书下载网站
  • 100天精通Python(爬虫篇)——第115天:爬虫在线小工具_Curl转python爬虫代码工具(快速构建初始爬虫代码)
  • Kubernetes Pod网络组件解析与选型指南
  • python从入门到精通(二十五):文件操作和目录管理难度分级练习题
  • 【华三】STP端口角色与状态深度解析
  • MySQL------存储引擎和用户和授权
  • 从0开始的操作系统手搓教程25:使用环状缓冲区来让我们的键盘驱动真正的有作用起来
  • 200W数据去重入库的几种方法及优缺点
  • STM32-I2C通信协议
  • Browser Use+DeepSeek的使用教程
  • LTC6804、LTC6811、LTC6813的使用
  • Linux 软硬链接
  • 音视频入门基础:RTP专题(14)——FFmpeg源码中,对H.264的各种RTP有效载荷结构的解析
  • python从入门到精通(二十四):python爬虫实现登录功能
  • 996引擎-问题处理:实现自定义道具变身卡
  • 【C++ 函数重载】—— 现代编译技术下的多态表达与性能优化
  • ubuntu22.04机器人开发环境配置
  • Elasticsearch 2025/3/7