江科大STM32学习笔记-I2C

IIC通信协议:实现读写外挂芯片寄存器的功能
一、常识:  

IIC的通信线有两根,分别是SCL时钟线和SDA数据线。是同步半双工,也就是有时钟线,同一时间只写或者只读。支持挂载多设备,一主多从或者多主多从,一主多从时,主机总有绝对的控制权。有一个很巧妙的地方,无论读还是写操作时,除了起始位和终止位,SCL时钟线处于高电平时,SDA数据线都不能动了,只有在起始位和终止位,SCL高电平,SDA拉低表示开始,SCL高电平,SDA拉高表示终止位(不理解请看江科大10-3的第22分钟视频)。
二、IIC的硬件电路:  

硬件电路设置为开漏输出+上拉电阻弱上拉,这样的一个模式,这样可以很好的避免电源短路或者冲突等情况。也就是规定了,主机或者从机,只能拉低或者松手。因此,SCL和SDA在默认状态下是高电平的,上拉电阻作用的结果。

三、发送和接收:  
3-1:  有起始位和停止位,起始位是时钟线保持高电平的状态下,手动拉低SDA线。停止位是先放手SCL时钟线让其回弹恢复高电平,然后再松手SDA数据线。这个SDA的控制权,写数据时,是从主机写数据到从机,因此控制权在主机,当读数据时,是指定地址读数据,因此时序图前半段的控制权在主机,由主机先指定设备地址并且指定寄存器地址后,再由从机进行读发的操作,所以后半段控制权在从机。
3-2:  发送一个字节:  在SCL低电平期间,主机将数据位放在SDA数据线上,然后松手SCL时钟线让其回弹至高电平,循环8次,即可发送一个字节,从机将在SCL高电平时读取SDA上的数据位。
3-3:  接收一个字节:  和发送一样,只不过此时SDA数据线的控制权在从机,由从机来放数据,由从机来释放SCL时钟线。
3-4:  发送应答和接收应答:  
发送应答:  主机发送完一个字节以后,会手动释放SDA线,如果SDA线回弹到高电平,代表没有收到应答信号。如果SDA线被拽着,也就是低电平,代表收到了应答信号。
接收应答:  一样,此时SDA的控制权在从机,由从机进行释放SDA线,如果SDA线没有回弹到高电平,那么就是收到了应答信号。
3-5:  指定位置写读:
3-5-1:  指定地址写:  对于指定从机地址(1),在指定从机寄存器地址下(2),写入指定数据(3)。以上三个字节每个字节写完时,都会有一个应答信号,主机主动释放SDA数据线,若SDA数据线没有回弹到高电平,代表此时正被从机拽着,产生了应答信号0,如果应答信号是1,则从机没有返回应答信号。
3-5-2:   指定地址读:   和指定地址写类似。先由主机发送(指定从机地址)+(指定从机寄存器地址),由此来确定指定读的具体位置,此时控制权仍然在主机。然后再由主机继续产生一个(指定从机位置),唯一区别是,当主机松开SDA数据线,此时自动回弹到高电平1,从机并没有继续拽着这根SDA线,代表了读操作,后面就可以

通过指针的形式,把指定寄存器位置的数据给指(读)出来了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值