cortex-A7核IIC实验--STM32MP157AAA

news2024/11/24 5:35:16

实验目的:采集温湿度传感器值

一,IIC概念

1.同步串行半双工总线,主要用于链接整体电路,硬件结构简单,接口连接方便,成本较低

2.两线制,只有两根双向信号线,数据线SDA,时钟线SCL

3.IIC传输速率:1)低速:100k ,2)400k,全速:3.4M

4.总线外接两个上拉电阻:在总线处于空闲状态时,默认处于高电平状态

二,硬件连接

1.支持多主机多从机模式,但同一时刻,只能一个主机和一个从机通讯,大多数情况使用单主机多从机模式

2.每个挂接到 IIC总线上的从机设备,都有自己唯一的7位从机地址

3.发送数据----发送器,接收数据----接收器

 主动发起数据----主机,被动接收数据-----从机

4.时钟信号由主机产生,作用给从机完成数据收发同步

三,内部框图

 

四,时序

1.总线时序,时序的拼接才是协议

2.SCL高电平,可以发送起始信号和终止信号

SCL低电平,可以发送数据传输信号

3.发送完8位数据位后必须发一个应答位,只有应答后才能发送结束信号

4.从机地址必须写在起始信号后面,这样

1.起始信号

1、起始信号和停止信号都由主机产生

2、起始信号产生之后,代表总线开始传输数据

3、起始信号:在SCL为高电平期间,数据线从高到低的变化(下降沿)

4、起始信号产生之后,总线处于占用状态

2.停止信号

1,停止信号产生之后,代表总线传输数据结束

2,停止信号:在SCL为高电平期间,数据线从低到高的变化(上升沿)

3,停止信号产生之后,总线处于空闲状态

3.数据传输信号

在SCL为低电平期间,数据线上数据允许发生变化,发送器向数据线上写入数据

在SCL为高电平期间,要求数据线上数据保持稳定,不允许发生变化,接收器从数据线上读取数据

4.应答信号

图片已经损坏 :<

1、每一个被传输的数据,必须保证8位长度 ==> 先发送高位,在发送低位

2、每传送完8位数据位之后,必须跟随一个应答位, 一帧数据 = 8位数据位+1位应答位=9位

3、发送器向数据线写入8位数据,接收器在第9个时钟周期,向数据线写入应答信号/非应答信号

发送器在第9个时钟周期,从数据线上读取数据

        读0:接收器返回的是应答信号

        读1:接收器返回的是非应答信号

5.寻址信号

1、IIC总线传输数据是广义,既可以传输8位数据,也可以传输7位从机地址+读/写位

2、写位用0表示,读位用1表示

3、从总线上读取数据:7位从机地址 + 读(1)

4、向总线上写入数据:7位从机地址 + 写(0)

5、从机地址必须写在起始信号后面,这样这8位才代表寻址过程

五,IIC协议

1.主机发送一个字节给从机

2.主机发送多个字节给从机

3.从机发送一个字节给主机

4.从机发送一个字节给主机

 六,分析si7006芯片

1、si7006从机地址 ===> 0x40

2、si7006内部框图

3、芯片如何进行初始化(地址/值) ===> 0xE6 0x3A

4、如何采集温度和湿度的地址

5、查找si7006芯片手册的采集协议

6、如何将数据量转换为模拟量 ===> 公式

1,内部框图

  

 2,从机地址

:0x40 

从机地址+读:0x40 << 1 | 1

从机地址+写:0x40 << 1 | 0

3,读取温湿度命令码

图片已经损坏 :<

 测量相关湿度,保持主机模式:0xE5

 测量相关湿度,不保持主机模式:0xF5

 测量相关温度,保持主机模式:0xE3

 测量相关温度,不保持主机模式:0xF3

从之前测量湿度中,读取温度的值:0xE0

写用户寄存器1 :0xE6

读用户寄存器1:0xE7

七,起始信号

起始信号===从机地址+写===ACK===命令码===ACK===起始信号===从机地址+读===ACK===延时函数===========高八位===ACK===第八位NACK===停止信号

八,转换公式

因为测出来的时模拟量,需要使用ADC转为数字量

湿度转换公式 H = %RH - 125*RH_Code / 65536 -6

温度转换公式  T = 175.72*Temp_Code / 65536 - 46.85 

九,初始化值

寄存器初始化值:0011 1010   ======  0x3A

 [7][0] == 00:测量精度

[6] == 0:电源状态 : 0 = 高电平 ,1 = 低电平

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/923332.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【校招VIP】CSS校招考点之水平/垂直居中

考点介绍&#xff1a; 前端布局非常重要的一环就是页面框架的搭建&#xff0c;也是最基础的一环。在页面框架搭建之中&#xff0c;又有居中布局/多列布局/全局布局。今天介绍一下居中布局的水平居中和垂直居中。 『CSS校招考点之水平/垂直居中』相关题目及解析内容可点击文章末…

装备制造企业如何执行精益管理?

导 读 ( 文/ 2358 ) 精益管理是一种以提高效率、降低成本和优化流程为目标的管理方法。装备制造行业具备人工参与度高&#xff0c;产成品价值高&#xff0c;质量要求高的特点。 在装备制造企业中实施精益管理可以帮助企业提高竞争力、提升生产效率并提供高质量的产品。本文将…

架构评估-架构师之路(十二)

软件系统质量属性 软件系统质量熟悉分为 开发期质量属性 和 运行期质量属性。 质量属性 性能&#xff1a;指 系统的响应能力&#xff0c;如 响应时间&#xff0c;吞吐率。 设计策略&#xff1a;优先级队列、增加计算资源、减少计算开销、引入并发机制、采用资源调度。 可靠…

数据结构:二叉树及相关操作

文章目录 前言一、树的概念及结构1.什么是树2. 树的相关概念3.树的表示 二、二叉树概念及结构1.二叉树概念2.特殊的二叉树3.二叉树的性质4.二叉树的存储结构 三、平衡二叉树实现1.创建树和树的前中后遍历1.前中后遍历2.创建树且打印前中后遍历 2.转换为平衡二叉树和相关操作1.转…

【C++从0到王者】第二十三站:多态的概念、定义以及实现

文章目录 前言一、多态的概念二、多态的定义及实现1.虚函数2.虚函数重写3.多态的两个条件4.虚函数重写的两个例外5.前四点的一些总结6.析构函数的重写&#xff08;虚函数重写的第三个例外&#xff09;7. C11之override 和 final8.如何设计一个类&#xff0c;使得这个类不会被继…

三个视角解读ChatGPT在教学创新中的应用

第一&#xff0c;我们正处于一个学生使用ChatGPT等AI工具完成作业的时代&#xff0c;传统的教育方法需要适应变化。 教育工作者不应该因为学生利用了先进技术而惩罚他们&#xff0c;相反&#xff0c;应该专注于让学生去挑战超越AI能力范围的任务。这需要我们重新思考教育策略和…

Java8新特性之——Lambda表达式

文章目录 一、简介二、格式三、举例四、使用场景五、FunctionalInterface注解六、Lambda表达式的简化方式省略参数类型&#xff1a;如果上下文已经明确了参数的类型&#xff0c;可以省略参数类型的声明。省略参数括号&#xff1a;如果只有一个参数&#xff0c;可以省略参数的括…

队列(Queue):先进先出的数据结构队列

栈与队列https://blog.csdn.net/qq_45467165/article/details/127958960?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22127958960%22%2C%22source%22%3A%22qq_45467165%22%7D 队列&#xff08;Queue&#xff09;是一种常见的线…

VS+Qt 自定义Dialog

与QtCreator不同&#xff0c;刚用VS添加Qt Dialog界面有点懵&#xff0c;后整理了下&#xff1a; 1.右击项目&#xff0c;选择“添加-模块”&#xff0c;然后选择“Qt-Qt Widgets Class” 2.选择基类[1]QDialog,更改[2]ui文件名称&#xff0c;修改定义Dialog[3]对应类名&#…

前端工程化之模块化

模块化的背景 前端模块化是一种标准&#xff0c;不是实现理解模块化是理解前端工程化的前提前端模块化是前端项目规模化的必然结果 什么是前端模块化? 前端模块化就是将复杂程序根据规范拆分成若干模块&#xff0c;一个模块包括输入和输出。而且模块的内部实现是私有的&…

c++学习之内存管理

目录 1.c/c内存分布 2.new与delete/malloc与free c内存管理方式&#xff1a; new/delete操作内置类型&#xff1a; new/delete操作自定义类型 operator new与operator delete函数 new和delete的实现原理 内置类型 自定义类型 malloc/free和new/delete的区别 1.c/c内存分…

Linux——初始

linux是一个操作系统&#xff0c;目前主流就是在服务器后端被选作服务器的操作系统来使用&#xff0c;所以我们没有直接接触到。 Linux的历史和概念 先是国家投钱给科研技术人员&#xff0c;科研技术人员将科研成果部分投入生活用品卖给老百姓&#xff0c;老百姓购买产品同时还…

Java课题笔记~ 综合案例

3.综合案例 3.1 功能介绍 以上是我们在综合案例要实现的功能。除了对数据的增删改查功能外&#xff0c;还有一些复杂的功能&#xff0c;如 批量删除、分页查询、条件查询 等功能 批量删除 功能&#xff1a;每条数据前都有复选框&#xff0c;当我选中多条数据并点击 批量删除 按…

YOLOv5算法改进(4)— 添加CA注意力机制

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。注意力机制是近年来深度学习领域内的研究热点&#xff0c;可以帮助模型更好地关注重要的特征&#xff0c;从而提高模型的性能。在许多视觉任务中&#xff0c;输入数据通常由多个通道组成&#xff0c;例如图像中的RGB通道或…

村口的人家排放污水,污水浸染了整个村子,怎么办

从前有一个很不错的村子里&#xff0c;村子里有很多户人家&#xff0c;随着生活水平越来越好&#xff0c;房子也修起来了&#xff0c;柏油马路也宽敞了&#xff0c;大家进出村子&#xff0c;都要走那条马路&#xff0c;要不就出不去。 目录 1. 修厕所 2. 村口的日家 3. 告诉…

商城的TPS与并发用户数是如何换算的?

商城的TPS与并发用户数的换算关系可以通过以下公式计算&#xff1a; TPS 并发用户数 / 平均事务响应时间 其中&#xff0c;平均事务响应时间是指系统处理一个事务所需的平均时间。 下面是商城性能测试的一些用例示例&#xff1a; 用户登录&#xff1a; 目标&#xff1a;测…

4.物联网LWIP之C/S编程,stm32作为服务器,stm32作为客户端,代码的优化

LWIP配置 服务器端实现 客户端实现 错误分析 一。LWIP配置&#xff08;FREERTOS配置&#xff0c;ETH配置&#xff0c;LWIP配置&#xff09; 1.FREERTOS配置 为什么要修改定时源为Tim1&#xff1f;不用systick&#xff1f; 原因&#xff1a;HAL库与FREERTOS都需要使用systi…

【Python原创毕设|课设】基于Python Flask的上海美食信息与可视化宣传网站项目-文末附下载方式以及往届优秀论文,原创项目其他均为抄袭

基于Python Flask的上海美食信息与可视化宣传网站&#xff08;获取方式访问文末官网&#xff09; 一、项目简介二、开发环境三、项目技术四、功能结构五、运行截图六、功能实现七、数据库设计八、源码获取 一、项目简介 随着大数据和人工智能技术的迅速发展&#xff0c;我们设…

【JavaEE进阶】MyBatis表查询

文章目录 一. 使用MyBatis完成数据库的操作1. MyBatis程序中sql语句的即时执行和预编译1.1 即时执行&#xff08;${}&#xff09;1.2 预编译&#xff08;#{}&#xff09;1.3 即时执行和预编译的优缺点 2. 单表的增删改等操作2.1 增加操作2.2 修改操作2.3 删除操作2.4 like(模糊…

星际争霸之小霸王之小蜜蜂(六)--让子弹飞

目录 前言 一、添加子弹设置 二、创建子弹 三、创建绘制和移动子弹函数 四、让子弹飞 五、效果 总结 前言 小蜜蜂的基本操作已经完成了&#xff0c;现在开始编写子弹的代码了。 一、添加子弹设置 在我的预想里&#xff0c;我们的小蜜蜂既然是一只猫&#xff0c;那么放出的子弹…