赞
踩
目录
2.在bsp_i2c.c中添加函数read_AHT20_once(ATH20使用过程)
3.在bsp_i2c.c中添加函数read_AHT20(ATH20读温湿度函数)
I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、 CAN 等通讯协议的外部收发设备,所以被广泛使用。主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件.在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主机终止数据传送;如果主机要接收从器件的数据,首先由主器件寻址从器件.然后主机接收从器件发送的数据,最后由主机终止接收过程。在这种情况下.主机负责产生定时时钟和终止数据传送。
SDA(串行数据线)和SCL(串行时钟线)都是双向I/O线,接口电路为开漏输出。需通过上拉电阻接电源VCC。当总线空闲时,两根线都是高电平,连接总线的外同器件都是CMOS器件,输出级也是开漏电路。在总线上消耗的电流很小,因此,总线上扩展的器件数量主要由电容负载来决定,因为每个器件的总线接口都有一定的等效电容。而线路中电容会影响总线传输速度。当电容过大时,有可能造成传输错误。所以,其负载能力为400pF,因此可以估算出总线允许长度和所接器件数量。
常见的I2C通讯系统
(1)软件I2C
一般是使用GPIO管脚,用软件控制SCL,SDA线输出高低电平,模拟i2c协议的时序。
(2)硬件I2C
对应芯片上的I2C外设,有相应I2C驱动电路,其所使用的I2C管脚也是专用的,因而效率要远高于软件模拟的I2C;一般也较为稳定,但是程序较为繁琐。硬件(固件)I2C是直接调用内部寄存器进行配置;而软件I2C是没有寄存器这个概念的。
(3)二者对比
硬件 I2C 直接使用外设来控制引脚,可以减轻 CPU 的负担。不过使用硬件I2C 时必须使用某些固定的引脚作为 SCL 和 SDA,软件模拟 I2C 则可以使用任意 GPIO 引脚,相对比较灵活。对于硬件I2C用法比较复杂,软件I2C的流程更清楚一些。如果要详细了解I2C的协议,使用软件I2C可能更好的理解这个过程。在使用I2C过程,硬件I2C可能通信更加快,更加稳定。
正面(有孔): 背面:
温度范围为: 测量范围为 -40 ℃ ~+ 85 ℃ 精度±0.3℃。
湿度范围为:测量范围为0% - 100% 精度为±2%RH。
采用I2C的接口方式 ,i2c通讯方式:SCL --> 时钟线、SDI --> 数据线。
SDA弓|脚用于传感器的数据输入和输出。当向传感器发送命令时,SDA在串行时钟SCL的.上升沿有效,且当SCL为高电平时,SDA必须保持稳定。
在SCL下降沿之后,SDA值可被改变。
注意事项:
SCL、 SDA的.上拉电压必须由VDD供电,供电电压范围为2.2~5 5V。
VDD和GND之间需加容值为10uF去耦电容。
参数表如图:
代码链接:AHT20温度采集_还有头发,不能停。的博客-CSDN博客
经过此次实验,我学到了ATH20温湿度传感器的基本原理,同时也能将串口调试运用更加自如,对于ATH20温湿度传感器,要注意正反面不能弄错,否则会直接导致器件的无法使用。另外,ATH20的工作电压一般都是5v,不能更低,不然就无法检测温湿度,均显示为零。我很直观的感受到了ATH20温湿度传感器可以很敏感地感受到温湿度的变化,这也是它的一大优点,相信也可以运用在更多的领域。总之,嵌入式系统的学习还是非常有趣的,也让自己的动手能力有了较大提升。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。