目录
- 一、I2C总线通信协议
-
- 1.1 I2C介绍
- 1.2 I2C物理层
- 1.3、I2C协议层
- 1.4、软件IIC和硬件IIC
- 1.5 IIC数据传送
- 1.6 IIC发送数据
- 1.7 IIC读数据:
- 二、STM32基于I2C协议的温湿度传感器的数据采集
-
- 2.1 题目要求:
- 2.2 前期准备
- 2.3代码撰写
- 三、准备工作
-
- 1. 温湿度采集器引脚一览表
- 2. 硬件线路连接
- 四、编译成功烧录后上位机显示
- 总结
一、I2C总线通信协议
1.1 I2C介绍
IIC(Inter-Integrated Circuit)总线是一种由NXP(原PHILIPS)公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。
在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps 以上。
注意IIC是为了与低速设备通信而发明的,所以IIC的传输速率比不上SPI
主机就是负责整个系统的任务协调与分配,从机一般是通过接收主机的指令从而完成某些特定的任务,主机和从机之间通过总线连接,进行数据通讯。
发布主要命令的称为主机,接受命令的称为从机
1.3、I2C协议层
原理图:
再给地址添加一个方向位位用来表示接下来数据传输的方向,
0表示主设备向从设备(write)写数据,
1表示主设备向从设备(read)读数据
IIC的每一帧数据由9bit组成,
如果是发送数据,则包含 8bit数据+1bit ACK,
如果是设备地址数据,则8bit包含7bit设备地址 1bit方向
主机要向从机写数据时:
主机首先产生START信
然后紧跟着发送一个从机地址,这个地址共有7位,紧接着的第8位是数据方 向位(R/W),0表示主机发送数据(写),1表示主机接收数据(读)
主机发送地址时,总线上的每个从机都将这7位地址码与自己的地址进行比较,若相同,则认为自己正在被主机寻址,根据R/T位将自己确定为发送器和接收器
这时候主机等待从机的应答信 (A)
当主机收到应答信 时,发送要访问从机的那个地址, 继续等待从机的应答信
当主机收到应答信 时,发送N个字节的数据,继续等待从机的N次应答信 ,
主机产生停止信 ,结束传送过程。
1.7 IIC读数据:
工程一览:
2. 硬件线路连接
2.1 usb to ttl —-> STM32F103C8T6核心开发板
3V3 —> 3V3
GND —> GND
RXD —> A9
TXD —> A10
2.2 STM32F103C8T6核心开发板 —-> 温湿度采集器
3V3 —> 引脚1
GND —> 引脚3
PB6 —> SCL
PB7 —> SDA
总结
通过这次实验,了解了I2C总线通信协议以及通过I2C协议实现温湿度(AHT20)采集的过程分析,
不断的在失败的过程中寻找答案,还是完成了本次实验,收获很大。
参考
https://blog.csdn.net/as480133937/article/details/105366932
https://blog.csdn.net/qq_53112972/article/details/127589824pm=1001.2014.3001.5502
https://blog.csdn.net/qq_46467126/article/details/121436790pm=1001.2014.3001.5502
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!