cortex-A7核IIC实验--STM32MP157AAA

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

一,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.rhkb.cn/news/104229.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于AWS的3D模型搜索服务实现

3D模型广泛应用于计算机游戏、电影、工程、零售业、广告等许多领域。市场上有很多制作3D模型的工具&#xff0c;但几乎没有工具可以直观地搜索3D模型数据库以找到类似的3D模型 因为开发好的 3D 模型搜索工具非常具有挑战性。 它需要复杂的计算和 AI/ML 框架来创建模型描述符并提…

【React源码实现】元素渲染的实现原理

前言 本文将结合React的设计思想来实现元素的渲染&#xff0c;即通过JSX语法的方式是如何创建为真实dom渲染到页面上&#xff0c;本文基本不涉及React的源码&#xff0c;但与React的实现思路是一致的&#xff0c;所以非常适合小白学习&#xff0c;建议跟着步骤敲代码&#xff…

Docker consul的容器服务注册与发现

前言一、服务注册与发现二、consul 介绍三、consul 部署3.1 consul服务器3.1.1 建立 Consul 服务3.1.2 查看集群信息3.1.3 通过 http api 获取集群信息 3.2 registrator服务器3.2.1 安装 Gliderlabs/Registrator3.2.2 测试服务发现功能是否正常3.2.3 验证 http 和 nginx 服务是…

CRM系统如何定制?定制哪些功能?

虽然市场上有许多成熟的CRM系统供企业选择&#xff0c;但很多时候&#xff0c;现有的标准化CRM系统无法满足企业的特殊需求。这时就需要进行CRM系统定制。那么&#xff0c;什么时候需要CRM系统定制&#xff0c;CRM系统定制怎么弄&#xff1f;下面我们就说一说。 什么时候需要C…

缓存的设计方式

问题情况&#xff1a; 当有大量的请求到内部系统时&#xff0c;若每一个请求都需要我们操作数据库&#xff0c;例如查询操作&#xff0c;那么对于那种数据基本不怎么变动的数据来说&#xff0c;每一次都去数据库里面查询&#xff0c;是很消耗我们的性能 尤其是对于在海量数据…

【Winform学习笔记(九)】Winform窗体程序延迟函数

Winform窗体程序延迟函数 前言正文1、具体代码2、使用示例 前言 Winform 窗体程序开发时&#xff0c;有时需要程序延迟或休眠几秒&#xff0c;如果直接使用 Thread.Sleep() 方法&#xff0c;会造成程序的假死&#xff0c;UI 界面停止响应&#xff1b; 本文中主要介绍一种方法&…

VB.NET调用VB6封装在OCX控件中的函数

将功能函数封装于OCX之中在VB6平台上可以简单化&#xff0c;在默认模板中直接考贝贴入那些函数即可。在博文【将《VB6编程IEEE浮点算法实践》中的Function封装成OCX】将《VB6编程IEEE浮点算法实践》中的Function封装成OCX_Mongnewer的博客-CSDN博客中对VB6的OCX封装做了具体实践…

keepalived+lvs(DR)(四十六)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、作用 二、调度器配置 三、web节点配置 一、作用 使用keepalived解决lvs的单点故障 高可用集群 二、调度器配置 安装keepalived yum install -y k…

OVRL-V2: A simple state-of-art baseline for IMAGENAV and OBJECTNAV 论文阅读

论文信息 题目&#xff1a;OVRL-V2: A simple state-of-art baseline for IMAGENAV and OBJECTNAV 作者:Karmesh Yadav&#xff0c; Arjun Majumdar&#xff0c; Ram Ramrakhya 来源&#xff1a;arxiv 时间&#xff1a;2023 代码地址&#xff1a; https://github.com/ykarmesh…

whisper 语音识别项目部署

1.安装anaconda软件 在如下网盘免费获取软件&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1zOZCQOeiDhx6ebHh5zNasA 提取码&#xff1a;hfnd 2.使用conda命令创建python3.8环境 conda create -n whisper python3.83.进入whisper虚拟环境 conda activate whisper4.…

vue uniapp 同意验证码滑块验证

前言 &#xff08;vue-puzzle-vcode&#xff09; 发送验证码以及登录的时候会做验证&#xff0c;防止机刷等 效果图 一、安装依赖 npm install vue-puzzle-vcode --save二、使用步骤 1.html使用 <Vcode :show"isShow" success"onSuccess"/>2.j…

数据降维 | MATLAB实现T-SNE降维特征可视化

数据降维 | MATLAB实现T-SNE降维特征可视化 目录 数据降维 | MATLAB实现T-SNE降维特征可视化降维效果基本描述程序设计参考资料 降维效果 基本描述 T-SNE降维特征可视化&#xff0c;MATLAB程序。 T-分布随机邻域嵌入&#xff0c;主要用途是对高维数据进行降维并进行可视化&…

Anolis 8.6 下 Redis 7.2.0 集群搭建和配置

Redis 7.2.0 搭建和集群配置 一.Redis 下载与单机部署1.Redis 下载2.虚拟机配置3.Redis 单机源码安装和测试4.Java 单机连接测试1.Pom 依赖2.配置文件3.启动类4.配置类5.单元测试6.测试结果 二.Redis 集群部署1.主从1.从节点配置2.Java 测试 2.哨兵1.哨兵节点配置2.复制一个哨兵…

SpringCloud学习笔记(六)_Ribbon服务调用

Ribbon介绍 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具 Ribbon是Netflix发布的开源项目&#xff0c;主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时、重试等。简单的说&#xff0c;就是…

java八股文面试[Spring]——如何实现一个IOC容器

什么是IOC容器 IOC不是一种技术&#xff0c;只是一种思想&#xff0c;一个重要的面向对象编程的法则&#xff0c;它能指导我们如何设计出松耦合&#xff0c;更优良的程序。传统应用程序都是由我们在类内部主动创建依赖对象&#xff0c;从而导致类与类之间高耦合&#xff0c;难于…

生成式人工智能的潜在有害影响与未来之路(三)

产品责任法的潜在适用 背景和风险 产品责任是整个二十世纪发展起来的一个法律领域&#xff0c;旨在应对大规模生产的产品可能对社会造成的伤害。这一法律领域侧重于三个主要危害&#xff1a;设计缺陷的产品、制造缺陷的产品和营销缺陷的产品。产品责任法的特点有两个要素&…

LinkedList的顶级理解

目录 1.LinkedList的介绍 LinkedList的结构 2.LinkedList的模拟实现 2.1创建双链表 2.2头插法 2.3尾插法 2.4任意位置插入 2.5查找关键字 2.6链表长度 2.7遍历链表 2.8删除第一次出现关键字为key的节点 2.9删除所有值为key的节点 2.10清空链表 2.11完整代码 3.…

聚观早报 | 云鲸扫拖机器人J4体验;芯科科技第三代无线开发平台

【聚观365】8月24日消息 云鲸扫拖机器人J4体验 芯科科技推出第三代无线开发平台 英伟达与VMWare宣布扩大合作 万物新生&#xff08;爱回收&#xff09;2023年二季度财报 充电桩需求增长带动汽车后服务市场 云鲸扫拖机器人J4体验 家庭卫生清洁是每个人都无法回避的事情&am…

Unity 类Scene窗口相机控制

类Scene窗口相机控制 &#x1f354;效果 &#x1f354;效果 传送门&#x1f448;

疫情下社区管理系统的设计与实现(论文+源码)_kaic

疫情下社区管理系统 摘 要&#xff1a;新冠疫情下的社区人员管理系统是基于SpringBoot搭建的一套前后端分离系统。面向疫情下的社区管理人员和社区用户&#xff0c;主要用于进行社区服务&#xff0c;进行高效的社区人员管理。具有一定的经济效益和社会效益。本文分析了新冠疫情…