STM32学习笔记-I2C-10

本文详细介绍了I2C通信协议,包括其两根通信线SCL和SDA的连接方式、同步和半双工特性,以及一主多从的设备配置。此外,还对MPU6050的6轴姿态传感器功能进行了概述,涉及加速度计和陀螺仪的测量范围和I2C从机地址设置。
摘要由CSDN通过智能技术生成

一.I2C通信简介

1.inter IC BUS,是一种通用数据总线,两根通信线:SCL(时钟线),SDA(数据线),是同步时序,半双工(兼具发送和接收)

2.带数据应答

3.支持总线挂载多设备(一主多从,多主多从)

二.硬件电路(一主多从)

1.所有I2C的设备的SCL要连在一起,SDA要连在一起

2.所有的SCL和SDA均要配置成开漏输出模式(输出为低电平,默认为高电平)

3.SCL和SDA各添加一个上拉电阻,阻值一般为4.7KΩ左右

4.左边位SCL,右边为SDA,采用开漏输出

(输出低电平,开关管导通,引脚直接接地,强下拉)

5.所有的设备只能输出低电平,不能输出高电平

三.I2C时序基本单元

1.起始条件:SCL高电平期间,SDA从高电平切换到低电平

2.终止条件:SCL高电平期间,SDA从低电平切换到高电平

3.发送一个字节:SCL低电平期间,主机将数据依次到SDA线上(高位先行),然后释放SCL,从机将在SCL高电平期间取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可发送一个字节

如红框中,scl低电平,sda选择1,0,scl拉高,读取数据

4.接受一个字节:SCL低电平期间,从机将数据依次到SDA线上(高位先行),然后释放SCL,主机将在SCL高电平期间取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可接收一个字节(主机在接收之前,需要释放SDA,SDA控制权给从机了)

5.发送应答:主机在接受完一个字节之后,在下一个时钟发送一位数据,数据0表示应答,数据1表示非应答

6.接收应答:主机在发送完一个字节之后,在下一个时钟接收一位数据,数据0表示应答,数据1表示非应答(主机在接收之前,需要释放SDA,SDA控制权给从机了)

四.三种I2C时序

1.指定地址写

对于指定设备,在指定地址下,写入指定数据


五.MPU6050简介

1.MPU6050时一个6轴姿态传感器,可以测量芯片自身X,Y,Z轴的加速度,角速度参数,通过数据融合,可进一步得到姿态角,常用于平衡车,飞行器的检测自身姿态的场景

2.3轴加速度计:测量X,Y,Z的加速度

3.3轴陀螺仪传感器:测量X,Y,Z的角速度

六.MPU6050参数

1.16位ADC采集传感器的模拟信号,量化范围:-32768-32767    也就是2的16次方

2.加速度计满量程选择:±2,±4,±8,±16(g)

3.陀螺仪满量程选择:±250,±500,±1000,±2000(度/sec)

4.可配置的数字低通滤波器

5.可配置的时钟源

6.可配置的采样分频

7.I2C从机地址:1101000(AD0=0) 1101001(AD0=1)


七.I2C硬件外设

1.STM32内部集成了硬件I2C收发电路,可以由硬件自动执行时钟生成、起始终止条件生成、应答位收发、数据收发等功能,减轻CPU的负担

2.支持多主机模型 支持7位/10位地址模式 支持不同的通讯速度,标准速度(高达100 kHz),快速(高达400 kHz) 支持DMA 兼容SMBus协议

3.STM32F103C8T6 硬件I2C资源:I2C1、I2C2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值