使用STM32F103完成基于I2C协议的AHT20温湿度传感器的数据采集

一.关于I2C协议的介绍

1. 概念
I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实
现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备,现在被广泛地
使用在系统内多个集成电路(IC)间的通讯。
在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和
片上外设;STM32 标准库则是在寄存器与用户代码之间的软件层。对于通讯协议,我们也
以分层的方式来理解,最基本的是把它分为物理层和协议层。物理层规定通讯系统中具有
机械、电子功能部分的特性,确保原始数据在物理媒体的传输。协议层主要规定通讯逻辑,
统一收发双方的数据打包、解包标准。简单来说物理层规定我们用嘴巴还是用肢体来交流,
协议层则规定我们用中文还是英文来交流。

2. I2C 协议的各层
① 物理层:
(1) 它是一个支持设备的总线。“总线”指多个设备共用的信号线。在一个 I2C 通讯总线
中,可连接多个 I2C 通讯设备,支持多个通讯主机及多个通讯从机。
(2) 一个 I2C 总线只使用两条总线线路,一条双向串行数据线(SDA) ,一条串行时钟线
(SCL)。数据线即用来表示数据,时钟线用于数据收发同步。
(3) 每个连接到总线的设备都有一个独立的地址,主机可以利用这个地址进行不同设备之
间的访问。
(4) 总线通过上拉电阻接到电源。当 I2C 设备空闲时,会输出高阻态,而当所有设备都空
闲,都输出高阻态时,由上拉电阻把总线拉成高电平。
(5) 多个主机同时使用总线时,为了防止数据冲突,会利用仲裁方式决定由哪个设备占用
总线。
(6) 具有三种传输模式:标准模式传输速率为 100kbit/s ,快速模式为 400kbit/s ,高速模式
下可达 3.4Mbit/s,但目前大多 I2C 设备尚不支持高速模式。
(7) 连接到相同总线的 IC 数量受到总线的最大电容 400pF 限制 。
I2C 通讯设备之间的常用连接方式:

 ②协议层

I2C 的协议定义了通讯的起始和停止信号、数据有效性、响应、仲裁、时钟同步和地
址广播等环节。

3. I2C的两种方式——硬件I2C和软件I2C

硬件I2C:

直接利用 STM32 芯片中的硬件 I2C 外设。

软件I2C:

直接使用 CPU 内核按照 I2C 协议的要求控制 GPIO 输出高低电平,从而模拟I2C。

两者的区别:硬件 I2C 直接使用外设来控制引脚,可以减轻 CPU 的负担。不过使用硬件I2C 时必须使用某些固定的引脚作为 SCL 和 SDA,软件模拟 I2C 则可以使用任意 GPIO 引脚,相对比较灵活。对于硬件I2C用法比较复杂,软件I2C的流程更清楚一些。如果要详细了解I2C的协议,使用软件I2C可能更好的理解这个过程。在使用I2C过程,硬件I2C可能通信更加快,更加稳定。

二. 实现AHT20采集程序

1.了解AHT20芯片的相关信息到官网可以看到对应产品的资料

软件下载-温湿度传感器 温湿度芯片 温湿度变送器模块 气体传感器 流量传感器 广州奥松电子股份有限公司

2.用keil5输入程序代码

具体代码添加过程:

在野火提供的示例代码中,打开一个只包含固件库的空项目。向工程中添加相关代码,添加代码的具体内容请参考下面链接:

GitHub - Sunlight-Dazzling/stm32-AHT20 at master

下载并找到以下这个keil程序文件

 打开并让他可以生成hex文件

 编译

三.连接硬件

TTL 芯片
3v3 3v3
TXD A10
RXD A9
GND GND

温湿度传感器连接

AHT20 芯片
VCC 3v3
GND GND
SCL PB6
SCA PB7

四. 烧录并完成温湿度采集

打开串口调试助手mcuisp,并把生成的hex文件烧录到芯片中

然后打开野火多功能调试助手,打开串口之后,可以看到正在温度采集

采集视频: 

       

 

 完成。

参考博客资料

stm32通过I2C接口实现温湿度(AHT20)的采集_Harriet的博客-CSDN博客

           软件下载-温湿度传感器 温湿度芯片 温湿度变送器模块 气体传感器 流量传感器 广州奥松电子股份有限公司                                                                                           

版权声明:本文为CSDN博主「又菜又爱混」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_51127539/article/details/121564490

生成海报
点赞 0

又菜又爱混

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

STM32中断控制LED灯

一、相关概念 1.中断概念 中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。 2.中断过程 ①中断

stm32f373利用esp8266连接onenet平台

学习目标: 1.注册onenet平台 2.esp8266引脚连接 3.stm32373代码移植编写 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 一、注册onene

基于I2C/SPI总线的温湿度采集与OLED显示

实验一 实验目的 学习I2C总线通信协议,使用STM32F103完成基于I2C协议的AHT20温湿度传感器的数据采集,并将采集的温度-湿度值通过串口输出。具体任务: 1)解释什么是“