【江科大】STM32:I2C通信(上)

文章探讨了如何通过单片机控制硬件电路,包括寄存器地址指定、同步通信与异步通信的区别,以及2C设备中SCL和SDA的配置策略,重点介绍了弱上拉的概念以及它在避免引脚频繁切换和实现多主机模式时钟同步与总线仲裁中的作用。
摘要由CSDN通过智能技术生成

如果要通过寄存器控制硬件电路,至少需要定义两个字节数据
1.一个字节是我们要读写哪个寄存器,也就是指定寄存器地址。
2.这个地址下,存储器存的内容(写入内容就是控制电路,读取内容就是获取电路的状态)
单片机读取自己的寄存器,可以通过内部的数据总线来完成,直接用指针操作
模块中的寄存器在单片机的外面,因此就需要通信协议,连接尽可能少的线,实现单片机读写外部模块寄
存器的功能。

同步通信和异步通信

  • 同步通信:使用一根时钟线,对传输的时间就不用严格要求了,当需要暂停传输,时钟线也可以随时暂
    停,继续传输时,会从暂停的位置继续传输。
    使用同步时序可以极大降低单片机对硬件电路的依赖,即使没有硬件电路的支持,也可以很方
    便的用软件手动翻转电平来实现通信(软件模以时序)。
  • 异步就是少了一根时钟线,节省资源,缺点就是对时间要求严格,对硬件电路依赖比较严重
    通过通信线,来读取外模块寄存器的功能。在指定的位置写寄存器和指定的位置读寄存器两个功能。
    在这里插入图片描述
    在这里插入图片描述
    主机对SCL和SDA有控制权
    在任何时候,主机都拥有对SCL的完全控制。
    在空闲状态下,主机可以主动发起对SDA的控制,只有在从机应答或者发送数据,主机才会转交SDA的控制权给从机
    在这里插入图片描述

硬件电路

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

上拉

在这里插入图片描述

下拉

在这里插入图片描述
根据上面的几个方面的问题,总以为以下三点:
所有2C设备的SCL连在一起,SDA连在一起
设备的SCL和SDA均要配置成开漏输出模式(低电平有效)
SCL和SDA各添加一个上拉电阻,阻值一般为4.7K2左右

在这里插入图片描述

对弱上拉的理解

外部通过外界两个上拉电阻,来将低电平拉到高电平
这是一个弱上拉:举个例子:
SCL和SDA是一根杆子,为了防止向上推杆子,有人向下拉杆子,造成冲突。
我们就规定所有的人不可以向上推杆子,只能选择向下拉和松手。
然后我们外置一根弹簧向上拉,要是想输出低电平就往下拽。那么弹簧就会拉下来
而想输出高电平,松手,弹簧就会回弹到高电平。
因此:不管多少人想拉杆子,杆子都不会出现同时强拉和强推的情况。
避免了引脚的频繁切换。开漏加弱上拉的模式,同时兼具了输入和输出的功能。
向输出,就去拉杆子,想输入放手。因为开漏模式下,输出高电平就相当于断开引脚。
所以在输入之前直接输出高电平。不需要再切换成输入模式。
并且存在线与的现象,就是只要有一个或者多个设备输出低电平,总线就处于低电平。
只有所有的设备都输出高电平,总线才处于高电平。,2c可以利用这个电路特征执行多主机模式
下的时钟同步和总线仲裁。
在这里插入图片描述

在这里插入图片描述

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
科大自化协软件模拟I2C读写MPU6050的过程可以分为两个主要步骤。首先,需要学习I2C协议规则,并使用软件模拟的方式实现协议。这包括了了解I2C协议的引脚配置、时序要求等相关内容。其次,需要学习STM32I2C外设,并使用硬件实现协议。这一步骤可以进一步学习STM32I2C外设和协议的硬件实现方式。\[1\]\[2\] 在软件模拟I2C读写MPU6050的过程中,可以采用多层的模块架构。最底层是I2C协议层,主要关注引脚配置、时序要求等与协议相关的内容。其次是MPU6050的驱动层,主要关注如何读写寄存器、配置寄存器以及读取数据等与驱动相关的内容。最后是主函数应用层,通过调用MPU6050的驱动函数获取数据,并根据需要进行进一步的功能设计。\[3\] 因此,科大自化协软件模拟I2C读写MPU6050的过程包括学习I2C协议规则、软件模拟实现协议,以及学习STM32I2C外设并使用硬件实现协议。在软件模拟过程中,需要关注引脚配置、时序要求等与协议相关的内容。在硬件实现过程中,需要学习STM32I2C外设和协议的硬件实现方式。最后,通过多层的模块架构,实现对MPU6050的读写操作,并根据需要进行进一步的功能设计。 #### 引用[.reference_title] - *1* *2* *3* [【STM32学习】——I2C通信协议&MPU6050姿态传感器&软件I2C读写MPU6050](https://blog.csdn.net/weixin_51658186/article/details/129821841)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值