【stm32】I2C通信协议

news2024/10/6 4:11:43

【stm32】I2C通信协议

概念及原理

  • 如果我们想要读写寄存器来控制硬件电路,就至少需要定义两个字节数据

    • 一个字节是我们要读写哪个寄存器,也就是指定寄存器的地址

    • 另一个字节就是这个地址下存储寄存器的内容

      • 写入内容就是控制电路,读出内容就是获取电路状态

I2C硬件规定(硬件电路)

一主多从
  1. cpu就是我们的单片机,作为总线的主机

    1. 任何时候都是主机掌控SCL线

    2. 在空闲状态下,主机可以主动发起对SDA的控制

    3. 只有在从机发送数据和从机应答的时候,主机才会转交SDA的控制权给从机

    4. 对于从机在任何时候,都只能被动的获取SCL时钟线,从机不允许控制SCL线

    5. 对于SDA数据线,只有在主机发送读取从机的命令后,或者从机应答的时候,从机才能短暂的获取SDA的控制权

L2C的SCL和SDA的输入输出配置问题
  1. 为了避免总线没协调好导致电源短路这个问题(从机一个输出高电平一个输出低电平),I2C的设计是,禁止所有设备输出强上拉的高电平

  2. 采用外置弱上拉电阻加开漏输出的电路结构

    1. 在这里插入图片描述

    2. 就是设备的SCL和SDA均要配置成开漏输出模式

  3. 在这里插入图片描述

    1. 要是想输出,就去拉杆子或放手,操作杆子变化就行

    2. 要是像输入,就直接放手,观察杆子高低就行

    3. 因为开漏模式下,开漏模式下,输出高电平就相当于断开引脚

      1. 所以在输入之前,可以直接输出高电平

      2. 不需要再切换成输入模式了

关于SCL和SDA时序问题

  1. 拽下SCL是因为:

    1. 一方面是占用这个总线

    2. 另一方面也是方便我们这些基本单元的拼接

      1. 就是我们之后会保证,除了起始和终止条件,每个时序单元的SCL都是以低电平开始低电平结束
  2. 主机接收一个字节数据

    1. 在接收前需要释放SDA,释放SDA就相当于切换成输入模式

    2. 或者理解成,所有设备包括主机都处于输入模式,当主机需要发送的时候,可以主动拉低SDA,而主机在被动接收的时候,就必须先释放SDA

    3. 因为总线是线与的特征,任何一个设备拉低,总线就是低电平

如果有相同的芯片挂在同一条总线

  • 这就用到地址中的可变部分了

  • 一般器件的最后几位是可以在电路中改变的

  • 比如MPU6050地址的最后一位,就可以由板子上的AD0引脚确定

    • 这个引脚接低电平,那他的地址就是1101 000

    • 这个引脚接高电平,那他的地址就是1101 001

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

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

相关文章

Arcgis Pro地理配准

目录 一、目的 二、配准 1、找到配准工具 2、添加控制点 3、选择控制点 4、添加更多控制点 5、配准完成、保存 三、附录 1、查看控制点或删除控制点 2、效果不好怎么办 一、目的 下面我们将两张地图进行配准,其中一张有地理位置,而另外一张没…

​​​​​​​【人工智能】手写数字识别

手写数字识别 实验背景 数据集介绍 MNIST数据集包含了一系列的手写数字图像,包括0到9的数字。每张图像都是灰度图像,尺寸为28x28像素。数据集共包含60000张训练图像和10000张测试图像。 MNIST数据集的目标是通过训练一个模型,使其能够正确地识…

NPW(监控片的)的要点精讲

半导体的生产过程已经历经数十年的发展,其中主要有两个大的发展趋势,第一,晶圆尺寸越做越大,到目前已有超过70%的产能是12寸晶圆,不过18寸晶圆产业链推进缓慢;第二,电子器件的关键尺寸越做越小&…

LCD屏幕mmap显示

目录 前言 一.LCD显示 二.LCD颜色显示 2.1 直接显示 2.2 mmap映射显示 前言 mmap是一种内存映射文件的方法,它允许将文件或其它对象映射到进程的地址空间。 使用mmap映射函数进行映射显示,与屏幕普通直接显示相比有很大的优势 一.LCD显示基础 像素、分辨…

mac 切换 jdk

查看 mac 上都有哪些版本 /usr/libexec/java_home -V看准版本切换 按前缀切换 比如 export JAVA_HOME/usr/libexec/java_home -v 1.8这样会随机一个 1.8 的 如果想再确定一个比如 openjdk export JAVA_HOME/usr/libexec/java_home -v 1.8.0_292这个方式是临时的&#xff0c…

图像处理入门 3(how to get the pixel pitch / 如何获得单个像素的尺寸)

在这里一节里面,将记录如何获得一个相机传感器中单个像素点的尺寸,为了实现不同相机照片之间的匹配。 如果我们知道了相机传感器的尺寸和分辨率的大小,自然就可以求出单个像素的大小。 在这里插入图片描述: 如何获得相机传感器的…

vue创建项目下载动态路由v-for mounted websocket :style :class store使用说明

在Vue中创建一个项目,并整合动态路由、v-for、mounted生命周期钩子、WebSocket、:style、:class以及Vuex的store,涉及到多个Vue核心特性的使用。下面我将简要说明如何逐步整合这些特性。 1. 创建Vue项目 使用Vue CLI创建项目: 2. 配置动态路…

[蓝桥杯 2017 国 C] 合根植物

[蓝桥杯 2017 国 C] 合根植物 题目描述 w 星球的一个种植园,被分成 m n m \times n mn 个小格子(东西方向 m m m 行,南北方向 n n n 列)。每个格子里种了一株合根植物。 这种植物有个特点,它的根可能会沿着南北…

spark-hive连接操作流程、踩坑及解决方法

文章目录 1 简介2 版本匹配3 spark hive支持版本源码编译3.1 spark-src下载3.2 maven换源3.3 spark编译 4 hive 安装与mysql-metastore配置4.1 mysql下载安装4.1.1 为mysql设置系统环境变量4.1.2 初次登陆更改root身份密码4.1.3 安装后直接更改密码 4.2 hive初始化4.2.1 编写hi…

Ps:色调均化

色调均化 Equalize命令通过均匀分布图像的亮度值来优化图像的对比度,使得图像色调更加平衡。 Ps菜单:图像/调整/色调均化 Adjustments/Equalize “色调均化”只有调整命令,无调整图层,无选区时无操作选项。 色调均化命令将重新映射…

hbuilderX创建的uniapp项目转移到vscode

场景:一直使用hbuilderX开发的朋友想转移到vscode获取更好的TypeScript支持,所以想把整个项目目录拖到vscode进行开发,但发现运行不了,提示没有package.json等,并且不能执行pnpm命令 首先,我们先来看一下h…

LeetCode刷题实战1:两数之和

从今天开始加入刷题大军,把算法题刷爆,我们直接进入主题。 题目内容 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应…

zdpreact_antdesginpro 研究一下react里面比较流行的一个UI框架,开发后台管理系统

首先看一下最开始的代码: 这里面大部分的东西都可以删掉,比如README,只留下中文的那个就可以了。 之后看看README.md中介绍的特性。 特性 💡 TypeScript: 应用程序级 JavaScript 的语言📜 区块: 通过区块模板快速…

canvas画图,画矩形、圆形、直线可拖拽移动,可拖拽更改尺寸大小

提示:canvas画图,画矩形,圆形,直线,曲线可拖拽移动 文章目录 前言一、画矩形,圆形,直线,曲线可拖拽移动总结 前言 一、画矩形,圆形,直线,曲线可拖…

2024最新在线工具箱/ 站长IT工具箱/网站系统源码下载

2024最新在线工具箱/ 站长IT工具箱/网站系统源码下载- 更多详情及下载地址请访问https://a5.org.cn/a5_ziyuan/39525.html 转载请注明出处!

Android Studio gradle-8.4 配置 GreenDao

1.配置项目下的build buildscript {repositories {mavenCentral()}dependencies {classpath ("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0")classpath ("org.greenrobot:greendao-gradle-plugin:3.3.1") // 使用最新版本} } 2.配置app下的build i…

泰坦尼克号幸存者数据分析

泰坦尼克号幸存者数据分析 1、泰坦尼克号数据集2、数据集加载与概览3、泰坦尼克号幸存者数据分析4、哪些人可能成为幸存者? 1、泰坦尼克号数据集 泰坦尼克号的沉没是世界上最严重的海难事故之一,造成了大量的人员伤亡。这是一艘号称当时世界上最大的邮轮…

深入浅出 -- 系统架构之分布式CAP理论和BASE理论

科技进步离不开理论支撑,而当下大行其道的分布式架构,透过繁荣昌盛表象,底层同样离不开诸多分布式理论撑持。当然,相信诸位在学习分布式相关技术时,必然学到过两个分布式领域中的基础理论,即:CA…

Java零基础入门-递归

一、概述 上一期,我们是具体学习了File类的一些概念基础知识点,以及对于该类的常用方法进行了一个全量举例演示,这也是考虑到有的小伙伴在阅读的同时,没有时间去实际测试,所以我也就顺带的给大家去做了实例演示&#x…

自动驾驶涉及相关的技术

当科幻走进现实,当影视照进生活,无数次憧憬的自动驾驶,正在慢慢的梦想成真。小时候天马星空的想象,现在正悄无声息的改变着我们的生活。随着汽车电动化进程的加快,自动驾驶技术映入眼帘,很多人可能感觉遥不…