AHT20温湿度传感器的数据采集(基于I2C协议)

AHT20温湿度传感器的数据采集(基于I2C协议)

I2C协议简介

  • 硬件(固件) I2C 对应芯片上的 I2C 外设,有相应 I2C 驱动电路,其所使用的 I2C 管脚也是专用的
  • 软件(模拟) I2C 一般是用 GPIO 管脚,用软件控制管脚状态以模拟 I2C 通信波形
  • 硬件I2C和软件I2C区别:
    硬件 I2C 的效率要远高于软件的;软件 I2C 由于不受管脚限制,接口比较灵活
    硬件 I2C 是直接调用内部寄存器进行配置;软件 I2C 是通过 GPIO ,软件模拟寄存器的工作方式
    硬件 I2C 配置了 IO 口的功能(I2C 功能);软件 I2C 没有配置 IO 口的功能
    硬件 I2C 的 I2C 写函数,有调用现成的函数或者给某个寄存器赋值;软件 I2C 传输数据的方式是一个 bit 一个 bit 模拟发生送的,肯定用到了循环
    根据代码量判断,硬件 I2C 的代码量肯定比软件 I2C 的代码量小
    硬件 I2C 用法比较复杂,软件 I2C 的流程更清楚一些
    硬件 I2C 的速度比软件 I2C 的速度快,并且硬件 I2C 可以用 DMA
    硬件 I2C 只能在固定管脚上;模拟 I2C 可以在任何管脚上
    软件 I2C 是程序员使用程序控制 SCL、SDA 线输出高低电平,模拟 I2C 协议的时序,一般较硬件 I2C 稳定,但是程序较为繁琐,但不难
    硬件 I2C 程序员只要调用 I2C 的控制函数即可,不用直接的去控制SCL、SDA 高低电平的输出,但是有些单片机的硬件 I2C 不太稳定,调试问题较多

程序烧录

工程文件下载
链接:https://pan.baidu.com/s/1_9a809N5EZrmR9gaJ9Ijfw(提取码:sstc)
打开路径I2C_AHT20\Project\RVMDK (uv5)下的BH-F103.uvprojx文件
在这里插入图片描述
编译一下没有任何问题
在这里插入图片描述
烧录前进行设置
进行如下设置生成hex文件,只有hex文件才能烧录进stm32中
在这里插入图片描述
在该页面点击debug,选择只用“ST-link”进行烧录在这里插入图片描述
之后连接设备
用杜邦线连接传感器的四个引脚,注意看引脚。

注意连接对应的接口VCC→3V3,GND→GND,SCL→PB6,SDA→PB7

根据板子和ST-link上的标识使用杜邦线对应连接
在这里插入图片描述
连接完成之后进行烧录,完成之后就可以在打开串口助手查看结果
大致如下图演示

猜你喜欢

转载自blog.csdn.net/java_creater/article/details/111567231