stm32通过I2C实现温湿度(AHT20)采集

目录

  • 一、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进行处理,非常感谢!

上一篇 2022年10月1日
下一篇 2022年10月1日

相关推荐