基于I2C硬件协议的AHT20温湿度传感器的数据采集
1.首先介绍一下I2C协议
I2C是由 Phiilps提出的,目前被广泛应用在系统内多个IC间的通讯。
I2C物理层如下图所示
I2C是一个能够支持多个设备的总线,包含一条双向串行数据线SDA,一条串行时钟线SCL。每个连接到总线的设备都有一个独立的地址,主机可以通过该地址来访问不同设备。主机通过SDA线发送设备地址(SLAVE_ADDRESS)查找从机,SLAVE_ADDRESS可以是7位或10位,紧跟着SLAVE_ADDRESS的一个数据位用来表示数据传输方向,即第8位或11位。为0时表示写数据,为1时表示读数据。
2.协议层
I2C 的协议定义了通讯的起始和停止信号、数据有效性、响应、仲裁、时钟同步和地 址广播等环节。
温湿度传感器的数据采集
运行代码满足
(1)每隔2秒钟采集一次温湿度数据
(2)并通过串口发送到上位机(win10)
代码如下:
#include “led.h”
#include “delay.h”
#include “temhum.h”
#include “sys.h”
#include “usart.h”
int main(void)
{
u32 CT_data[2]={0};
volatile float hum=0,tem=0;
de