| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 使用STM32F103完成基于I2C协议的AHT20温湿度传感器的数据采集 -> 正文阅读 |
|
[嵌入式]使用STM32F103完成基于I2C协议的AHT20温湿度传感器的数据采集 |
文章目录?? 一.I2C总线通信协议1.I2C简介??IIC(Inter-Integrated Circuit)总线是一种由NXP(原PHILIPS)公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。 ??I2C模块接收和发送数据,并将数据从串行转换成并行,或并行转换成串行。可以开启或禁止中断。接口通过数据引脚(SDA)和时钟引脚(SCL)连接到I2C总线。允许连接到标准(高达100kHz)或快速(高达400kHz)的I2C总线。 ??I2C通讯协议(Inter-Integrated Circuit)引脚少,硬件实现简单,可扩展性强,不需要USART、CAN等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。
2.I2C物理层??I2C 总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。通信原理是通过对SCL和SDA线高低电平时序的控制,来产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,SCL和SDA被上拉电阻Rp拉高,使SDA和SCL线都保持高电平。 ??I2C通信方式为半双工,只有一根SDA线,同一时间只可以单向通信,485也为半双工,SPI和uart通信为全双工。 ??主机和从机的概念:主机就是负责整个系统的任务协调与分配,从机一般是通过接收主机的指令从而完成某些特定的任务,主机和从机之间通过总线连接,进行数据通讯。 3.I2C协议层??主要是定义了通讯的起始和停止信号、数据有效性、响应、仲裁、时钟同步和地址广播等。 ??I2C 总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。
??其中起始信号是必需的,结束信号和应答信号,都可以不要。 4.I2C模式选择接口可以下述4种模式中的一种运行: ??该模块默认地工作于从模式。接口在生成起始条件后自动地从从模式切换到主模式;当仲裁丢失或产生停止信号时,则从主模式切换到从模式。允许多主机功能。
5.I2C特点??只需要一根数据线SDA和一根时钟线SCL,SDA(串行数据线)和SCL(串行时钟线)都是双向I/O线。
6.IIC传输通讯流程
7.软件IIC和硬件IIC
二.STM32基于I2C协议的温湿度传感器的数据采集1.题目要求阅读AHT20数据手册,编程实现:每隔2秒钟采集一次温湿度数据,并通过串口发送到上位机(win10)。 2.代码分析可以根据其他公司提供的示例代码进行修改与代码添加。(如正点原子或者野火) 相关的AHT20资料大家可以去官网进行查看与下载http://www.aosong.com/class-36.html
②AHT20芯片读取数据
完整代码可点此工程代码 三.硬件连接关于本实验我们采用的软件I2C实现,分析代码可以发现连接如下
如果采用硬件I2C进行实现,可以查看关于STM32的原理图,可以看到硬件I2C接口。图为正点原子stm32精英版原理图 四.结果演示温湿度采集器实物图 这里笔者利用的是XCOM串口调试助手,设置好波特率115200,打开串口即可观察到数据。 五.总结与分析??笔者在一开始想过自己建立基本工程进行配置但到后期发现其中的一些模板还是有所不同,之后又通过查阅资料请教同学才最终完成该实验。 参考 1.I2C总线通信协议及实操stm32通过I2C实现温湿度(AHT20)采集 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:17:17- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |