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.hqwc.cn/news/81446.html

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

相关文章

el-table存在固定列,如果拖动表格头宽度,造成固定列高度崩塌

对表格添加监听表头拖动方法header-dragend"headerDragend"&#xff0c;当拖动表格头时&#xff0c;触发headerDragend方法&#xff0c;执行表格.doLayout()方法&#xff0c;重新进行布局table&#xff1b;

keepalived+lvs(DR)(四十六)

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

23年下半年软考系统架构设计师(最新报名时间)

高级系统架构设计师&#xff0c;有一定的难度&#xff0c;值得挑战一下 23年下半年软考架构启用最新版考试大纲&#xff0c;而且报名时间也推迟了&#xff0c;考试形式也改了&#xff0c;由笔试改为了机考&#xff0c;所以今年报名一定要多关注一下&#xff01;&#xff01; 软…

帮助中心实践方式:及时提示反馈,引导自助解决

为了及时高效的帮助用户解决当下实际问题&#xff0c;很多产品都会专门设置一个独立的产品帮助中心&#xff0c;满足客户需要获取解决方案的需要&#xff0c;减轻人工客服端压力。 帮助中心实践方式 常规的帮助中心文档和用户群&#xff0c;解决的是用户遇到问题或者疑问时&am…

无涯教程-PHP - 性能优化

根据Zend小组的说明,以下插图显示了PHP 7与PHP 5.6和基于流行的基于PHP的应用程序上的HHVM 3.7。 Magento 1.9 与执行Magento事务的PHP 5.6相比&#xff0c;PHP 7的运行速度证明是其两倍。 Drupal 7 在执行Drupal事务时&#xff0c;与PHP 5.6相比&#xff0c;PHP 7的运行速度…

C++设计模式(工厂方法模式)

文章目录 前言一、工厂方法模式介绍二、工厂方法模式和简单工厂模式对比三、工厂方法模式适用场景四、工厂方法模式示例代码总结 前言 本篇文章来带大家学习C中的工厂方法模式。 一、工厂方法模式介绍 工厂方法模式是一种创建型设计模式&#xff0c;用于通过工厂方法创建对象…

JAVA JNA 调用C接口的三种方式

文章目录 1. 准备一个共享库文件2. JNA姿势1—继承Library接口3. JNA姿势2—直接NativeLibrary.getInstance3. JNA姿势3—Native方法 1. 准备一个共享库文件 test.c #include <stdio.h> int test(char *input){printf("input:%s\n",input);return 0; }libtes…

Pyqt5打开电脑摄像头进行拍照

目录 1、设计UI界面 2、设计逻辑代码&#xff0c;建立连接显示窗口 3、结果 1、设计UI界面 将ui界面转为py文件后获得的逻辑代码为&#xff1a;&#xff08;文件名为 Camera.py&#xff09; # -*- coding: utf-8 -*-# Form implementation generated from reading ui file …

C++,运算符重载——关系运算符练习

一、关系运算符重载 > > < < ! #include <iostream> using namespace std;class Relates { private:int a;int b; public:Relates() {}Relates(int a,int b):a(a),b(b) {}bool operator>(const Relates &R) const{if((a>R.a&&b>R.b) …

docker 安装oracle19c linux命令执行sql

docker安装oracle # 下载镜像 19.3.0.0.0 docker pull registry.cn-hangzhou.aliyuncs.com/laowu/oracle:19c # 创建文件 mkdir -p /home/mymount/oracle19c/oradata # 授权&#xff0c;不授权会导致后面安装失败 chmod 777 /home/mymount/oracle19c/oradatadocker run -d \ …

Java8 Stream流常用方法

1、Stream流思想 Stream流的三类方法 获取Stream流 创建一条流水线,并把数据放到流水线上准备进行操作 中间方法 流水线上的操作 一次操作完毕之后,还可以继续进行其他操作 终结方法 一个Stream流只能有一个终结方法 是流水线上的最后一个操作 生成Stream流的方式 Collect…

ELFNet: Evidential Local-global Fusion for Stereo Matching

论文地址&#xff1a;https://arxiv.org/pdf/2308.00728.pdf 源码地址&#xff1a;https://github.com/jimmy19991222/ELFNet 概述 针对现有立体匹配模型面临可靠性和跨域泛化的问题&#xff0c;本文提出了Evidential Local-global Fusion&#xff08;ELF&#xff09;框架&…