【无标题】IIC协议读取温湿度数据

IIC协议读取温湿度数据

一、12C协议相关

1.12C协议简介

I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备(那些电平转化芯片),现在被广泛地使用在系统内多个集成电路(IC)间的通讯。

I2C只有一跟数据总线 SDA(Serial Data Line),串行数据总线,只能一位一位的发送数据,属于串行通信,采用半双工通信。对于I2C通讯协议把它分为物理层和协议层物理层规定通讯系统中具有机械、电子功能部分的特性(硬件部分),确保原始数据在物理媒体的传输。协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准(软件层面)。

2.硬件12C

硬件I2C是指使用专门的I2C硬件控制器来实现I2C通信的方式。这些硬件控制器通常集成在微控制器、微处理器或其他专用芯片中。硬件I2C的特点包括:

  1. 高效性:由于使用硬件控制器,硬件I2C通常更为高效,能够在较高的时钟频率下工作,实现更快的数据传输。
  2. 实时性: 硬件I2C通常具有更好的实时性能,适用于对时间要求较为严格的应用场景。
  3. 占用硬件资源: 硬件I2C需要专门的硬件控制器,因此可能占用一定的芯片空间和资源。
  4. 适用于复杂任务: 由于其高效性和实时性,硬件I2C适用于需要大量数据传输或对通信速度要求较高的场景。

3.软件12C

软件I2C是通过编程方式模拟实现I2C通信的方式,通常使用通用输入输出(GPIO)引脚来模拟I2C的SDA和SCL线。软件I2C的特点包括:

  1. 灵活性: 软件I2C具有较高的灵活性,因为它可以通过编程调整实现细节,适应不同的硬件环境。
  2. 资源消耗较小:由于不需要专门的硬件控制器,软件I2C通常占用的硬件资源较少。
  3. 适用于简单任务: 软件I2C通常适用于较为简单的数据传输任务,例如连接一些简单的传感器或执行基本的通信功能。
  4. 低成本: 由于不需要专门的硬件支持,软件I2C在成本上可能相对较低。

二、实验工具

1.AHT20简介

2020年上市,奥松生产;
3mmx3mmx1mm 超小体积;
经过标定的数字信号,标准I2C输出格式;
由一个电容式湿度传感元件和一个标准的片上温度传感元件组成;
采用SMD封装适于回流焊;
响应迅速、抗干扰能力强;
*AHT20 的供电范围为 2.0-5.5V, 推荐电压为3.3V。

在这里插入图片描述
2.keil5软件

3.STM32芯片

三、编程实现

1:下载驱动函数

驱动函数官网有,包括.c和.h文件。 AHT20集成式温湿度传感器-温湿度传感器-温湿度传感器 温湿度芯片 温湿度变送器模块 气体传感器 流量传感器 广州奥松电子股份有限公司 (aosong.com)

2:修改相应引脚号

我使用的是正点原子的精英版,其SCL和SDL分别对应的就是PB6和PB7,我们用普通IO口来模拟I2C的功能,来实现功能。我们需要修改其引脚函数

以下为主要程序

`#include “stm32f10x.h”
#include “AHT20.h”
#include “myiic.h”
#include “usart.h”
#include “delay.h”

int32_t main(void)
{
uint32_t CT_data[2];
volatile int c1,t1;
SensorDelay_us(40000);//刚上电,延时40ms才可以读取状态
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
delay_ms(40);//刚上电,延时40ms才可以读取状态
if(!((AHT20_Read_Status()&0x80)==0x80))//首先发0x71读取状态字bit[3],如果=1,为校准输出,无须初始化!!! 正常情况下读回来的状态是0x1C或者是0x18,读回来是0x80表示忙状态;
{
AHT20_Init(); //初始化AHT20
}
while(1)
{
AHT20_Read_CTdata(CT_data); //不经过CRC校验,直接读取AHT20的温度和湿度数据 推荐每隔大于1S读一次
c1 = CT_data[0]10010/1024/1024; //计算得到湿度值(放大了10倍)
t1 = CT_data[1]20010/1024/1024-500;//计算得到温度值(放大了10倍)
printf("湿度:%d ",(c1/10));
printf(“温度:%d\n”,(t1/10));
delay_ms(20000);
}
}`
在这里插入图片描述

在这里插入图片描述

4硬件连接及实验结果

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值