基于STM32连接I2C实现温湿度(AHT20)显示

STM32与I2C:实现AHT20温湿度传感器数据采集与显示

目录

一、I2C协议介绍

二、温湿度采集实现

 三、结果显示

 四、总结

五、参考链接


一、I2C协议介绍

1、什么是I2C协议
      I2C总线接口连接微控制器和串行I2C总线。它提供多主机功能,控制所有 I2C总线特定的时序、协议、仲裁和定时。支持标准和快速两种模式,同时与 SMBus 2.0 兼容。I2C总线有多种用途,包括 CRC 码的生成和校验、SMBus(系统管理总线 System Management Bus)、PMBus(电源管理总线 Power Management Bus)。根据特定设备的需要,可以使用 DMA 以减轻 CPU 的负担。

2、I2C 协议的物理层和协议层
(1)物理层
     I2C是一个支持设备的总线。对于I2C 总线,只使用两条总线线路,一条双向串行数据线(SDA)以及一条串行时钟线(SCL)。每个连接到总线的设备都有一个独立的地址,主机可以利用这个地址进行不同设备之 间的访问。总线通过上拉电阻接到电源。当 I2C 设备空闲时,会输出高阻态,而当所有设备都空 闲,都输出高阻态时,由上拉电阻把总线拉成高电平。多个主机同时使用总线时,为了防止数据冲突,会利用仲裁方式决定由哪个设备占用 总线。 具有三种传输模式:标准模式传输速率为 100kbit/s ,快速模式为 400kbit/s ,高速模式 下可达 3.4Mbit/s,但目前大多 I 2C 设备尚不支持高速模式。连接到相同总线的 IC 数量受到总线的最大电容 400pF 限制 。

详情可以参考野火官网给出的玩转手册。

 (2)协议层 

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

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

2C 使用 SDA 信号线来传输数据,使用 SCL信号线进行数据同步。 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值