AHT20温湿度传感器的数据采集并通过串口输出和OLED屏显示

目录

一.I2C总线通信协议、SPI协议

1.I2C总线简介

1.1 I2C总线的物理层

1.2 I2C总线的协议层

2.软件I2C和硬件I2C

3.SPI协议

二.AHT20温湿度数据采集

1.工程代码

2.下载工程后并打开project

 3.编译加烧录

 4.运行结果

三.OLED显示  

1.显示姓名和学号

2.显示AHT20的温度和湿度 

 3.左右的滑动显示长字符

四、总结

参考文献:


一.I2C总线通信协议、SPI协议

1.I2C总线简介

     I2C由飞利浦公司于1980年代提出,为了让主板、嵌入式系统或手机用以连接低速周边外部设备而发展。

    主要用途:SOC和周边外设间的通信。

1.1 I2C总线的物理层

    I2C总线物理层由两根线组成:串行时钟线SCL、串行数据线SDA。由于这两根线都是开漏输出结构,因此必须都接上拉电阻到高电平,因此当总线处于空闲状态时,两根线都处于高电平状态。下图为I2C总线的物理层示意图:

1.2 I2C总线的协议层

     I2C 的协议定义了通讯的起始和停止信号、数据有效性、响应、仲裁、时钟同步和地址广播等环节。

I2C基本读写过程

     起始信号产生后,所有从机就开始等待主机接下来广播的从机地址信号。在 I2C 总线上,每个设备的地址都是唯一的,当主机广播的地址与某个设备地址相同时,这个设备就被选中了,没被选中的设备将会忽略之后的数据信号。根据 I2C协议,这个从机地址可以是 7位或10位。
    在地址位之后,是传输方向的选择位,该位为0时,表示后面的数据传输方向是由主机传输至从机,即主机向从机写数据。该位为 1时,则相反,即主机由从机读数据。
    从机接收到匹配的地址后,主机或从机会返回一个应答(ACK)或非应答(NACK)信号,
    只有接收到应答信号后,主机才能继续发送或接收数据。

通讯的起始和停止信号

   当 SCL 线是高电平时 SDA 线从高电平向低电平切换,这个情况表示通讯的起始。
   当 SCL 是高电平时 SDA 线由低电平向高电平切换,表示通讯的停止。
   起始和停止信号一般由主机产生。

 数据的有效性

  I2C使用SDA信号线来传输数据,使用SCL信号线进行数据同步。 SDA数据线在SCL的每个时钟周期传输一位数据。
  SCL为高电平的时候SDA表示的数据有效,即此时的SDA为高电平时表示数据“1”,为低电平时表示数据“0”。
  当SCL为低电平时,SDA的数据无效,一般在这个时候SDA进行电平切换,为下一次表示数据做好准备。

若想要更详细的了解I2C的知识,可以参考此链接学习:I2C协议——物理层和协议层_吴立赛的博客-CSDN博客 

2.软件I2C和硬件I2C

软件I2C

直接使用 CPU 内核按照 I2C 协议的要求控制 GPIO 输出高低电平,从而模拟I2C。

需要在控制产生 I2C 的起始信号时,控制作为 SCL 线的 GPIO 引脚输出高电平,然后控制作为 SDA 线的 GPIO 引脚在此期间完成由高电平至低电平的切换,最后再控制SCL 线切换为低电平,这样就输出了一个标准的 I2C 起始信号。

硬件I2C

直接利用 STM32 芯片中的硬件 I2C 外设。

只要配置好对应的寄存器,外设就会产生标准串口协议的时序。在初始化好 I2C 外设后,只需要把某寄存器位置 1,此时外设就会控制对应的 SCL 及 SDA 线自动产生 I2C 起始信号,不需要内核直接控制引脚的电平。

3.SPI协议

SPI是一种同步串行通信协议,由一个主设备和一个或多个从设备组成,主设备启动与从设备的同步通信,从而完成数据的交换。SPI是一种高速全双工同步通信总线,标准的SPI仅仅使用4个引脚,主要应用在 EEPROM, Flash, 实时时钟(RTC), 数模转换器(ADC), 数字信号处理器(DSP) 以及数字信号解码器之间。

SPI原理

SPI有3种规格,如图所示为其模型。

3种SPI的处理流程大同小异,使用最多的SPI-4为例来说明SPI的原理。它在发送接口和接收接口都有各自的数据通道和流控状态信息通道,其数据通道和流控状态信息通道是独立的并且是

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值