基于I2C的温湿度采集

该博客详细介绍了如何通过I2C协议使用STM32进行AHT20温湿度传感器的数据采集。首先区分了软件I2C和硬件I2C的区别,然后阐述了实验要求,包括理解I2C协议和编程实现每隔2秒采集温湿度数据并经串口输出。博主提供了焊接传感器、连接开发板、烧录程序和读取结果的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验要求

学习I2C总线通信协议,完成基于I2C硬件协议的AHT20温湿度传感器的数据采集,并将采集的温度-湿度值通过串口输出。具体任务:

1)解释什么是“软件I2C”和“硬件I2C”? (阅读野火配套教材的第23章“I2C–读写EEPROM”原理章节)

2)阅读AHT20数据手册,编程实现:每隔2秒钟采集一次温湿度数据,并通过串口发送到上位机(win10)。

一、解释“软件I2C”和“硬件I2C”

I2C简介

IIC(Inter-Integrated Circuit)其实是IICBus简称,所以中文应该叫集成电路总线,它是一种串行通信总线,使用多主从架构,速率较低。
IIC就是I2C正确读法为“I平方C”
其有两个物理接口分别为SCL和SDA
SCL(serical clock): 时钟线,传输CLK信号,一般是I2C主设备向从设备提供时钟的通道,
SDA(serical data): 通信数据都通过SDA线传输,

(一)“软件I2C”

一般是用GPIO管脚,用软件控制管脚状态以模拟I2C通信波形。

(二)“硬件I2C”

一般对应芯片上的I2C外设,有相应I2C驱动电路,其所使用的I2C管脚也是专用的。

(三)区别

软件I2C 是通过GPIO,软件模拟寄存器的工作方式而硬件I2C是直接调用内部寄存器进行配置,效率要远高于软件的,而软件I2C由于不受管脚限制,接口比较灵活。因为硬件I2C的端口是固定的,所以会有所区别。

二、编程实现温湿度采集

(一)代码

#include "stm32f10x.h"
#include "bsp_usart.h"
#include "delay.h"
#include "bsp_aht20.h"
#include "bsp_led.h"


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值