stm32 IIC通信

news2024/11/17 22:23:35

文章目录

  • IIC 通信
    • 一、硬件电路
    • 二、IIC时序基本单元
    • 三、IIC时序
      • 1.指定地址写
      • 2.当前地址读
      • 3.指定地址读

IIC 通信

IIC总线是一种通用数据总线,有两根通信线(SCL(串行时钟总线),SDA(串行数据总线))。
特点:同步,半双工,带数据应答,支持总线挂载多设备

一、硬件电路

所有IIC设备的SCL连在一起,SDA连在一起。
SCL与SDA均配置成开漏输出模式
SCL与SDA各添加一个上拉电阻,阻值一般为4.7千欧左右。
在这里插入图片描述
在这里插入图片描述

二、IIC时序基本单元

起始时间:SCL高电平期间,SDA从高电平切换到低电平。
终止时间:SCL高电平期间,SDA从低电平切换到高电平。
在这里插入图片描述
在这里插入图片描述
发送一个字节:SCL低电平期间,主机将数据位依次放到SDA总线上(高位先行),然后释放SCL,从机将在SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变换,依次循环8次,即可发送一个字节。
在这里插入图片描述
接收一个字节:SCL低电平期间,从机将数据位依次放到SDA线上(高位先行),然后释放SCL 主机将在SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环8次,即可接收一个字节。
在这里插入图片描述
发送应答:主机在接收完一个字节之后,在下一个时钟发送一位数据,数据0表示应答,数据1表示非应答。
在这里插入图片描述
接收应答:主机在发送完一个字节后,在下一个时钟接收一位数据,判断从机是否应答,数据0表示应答,数据1表示非应答(主机在接收之前,需要释放SDA)。
在这里插入图片描述

三、IIC时序

1.指定地址写

对于指定设备(Slave Adress),在指定地址(Reg Address)下,写入指定数据(Data)。
在这里插入图片描述

2.当前地址读

对于指定设备(Slave Adress),在当前地址指针指示的地址下,读取从机数据(Data)。
在这里插入图片描述

3.指定地址读

对于指定设备(Slave Adress),在指定地址(Reg Address)下,读取从机数据(Data)。
在这里插入图片描述

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

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

相关文章

学生管理系统-04VueX

一、本章目标 vuex的简介【重点】 掌握vuex的基本使用 掌握辅助函数来操作vuex 掌握vuex的模块化【难点】 掌握vuex的持久化 完成Tabs选项卡的二次封装 vuex的使用 封装组件 组件内路由守卫 二、vuex的简介 1、回顾组件之间的通讯 父组件向子组件通讯:通…

2. 两数相加

题目介绍 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都…

Hadoop 之 Hbase 配置与使用(四)

Hadoop 之 Hbase 配置与使用 一.Hbase 下载1.Hbase 下载 二.Hbase 配置1.单机部署2.伪集群部署(基于单机配置)3.集群部署1.启动 hadoop 集群2.启动 zookeeper 集群3.启动 hbase 集群4.集群启停脚本 三.测试1.Pom 配置2.Yml 配置3.Hbase 配置类4.Hbase 连…

LeetCode | Heap | 502.

502. IPO 是贪心算法in general。 一共两个变量:profit和capital。profit要求是找最大的。capital要求小于w。 两种筛选方法:把capital符合要求的排个序,找profit最大的。按照profit排序,从大到小找capital满足条件的。 哪种更…

flask结合mysql实现用户的添加和获取

1、数据库准备 已经安装好数据库,并且创建数据库和表 create database unicom DEFAULT CHARSET utf8 COLLATE utf8_general_ci; CREATE TABLE admin( id int not null auto_increment primary key, username VARCHAR(16) not null, password VARCHAR(64) not null…

C语言学习笔记 VScode设置C环境-06

目录 一、下载vscode软件 二、安装minGW软件 三、VS Code安装C/C插件 3.1 搜索并安装C/C插件 3.2 配置C/C环境 总结 一、下载vscode软件 在官网上下载最新的版本 Download Visual Studio Code - Mac, Linux, Windowshttps://code.visualstudio.com/download 二、安装minGW…

【Lua学习笔记】Lua入门

文章目录 Lua变量数据类型变量声明其他表示 Lua语法判断逻辑判断(Lua很特殊,这个比较重要)短路判断 ifif else 循环whileforrepeat 迭代器泛型for迭代器无状态迭代器多状态的迭代器 Lua函数select方法 数组字符索引_G (不是教程&a…

毛绒玩具英国UKCA认证BS EN71检测

在2020年12月31日之后,欧盟统一标准将成为联合王国的“指定标准”,这类标准清单将由国务卿公布。 2021年1月1日,英国标准的实质内容将与欧盟采用的标准相同。 然而,他们将使用前缀“BS”来表示它们是 英国标准机构(BSI)作为英国国…

因数分解及统计(朴素版和优化版)--We Were Both Children(codeforces886 div4 F)

题目大意:就是有n个蛤蟆,他们可以必须每次跳a[i]个值的距离,而我们是负责捕捉的,肯定要找最多的相同点,这就相当于一个因数筛,看看这个筛中谁最多(注意我们不可以在0点进行捕捉,并且…

网络安全作业1

URL编码 当 URL 路径或者查询参数中,带有中文或者特殊字符的时候,就需要对 URL 进行编码(采用十六进制编码格式)。URL 编码的原则是使用安全字符去表示那些不安全的字符。 安全字符,指的是没有特殊用途或者特殊意义的…

[RabbitMQ] RabbitMQ简单概述,用法和交换机模型

MQ概述: Message Queue(消息队列),实在消息的传输过程中保存消息的容器,都用于分布式系统之间进行通信 分布式系统通信的两种方式:直接远程调用 和 借助第三昂 完成间接通信 发送方称谓生产者,接收方称为消费者 MQ优…

SpringBoot整合Druid

前提&#xff1a;在SpringBoot整合JDBC的基础上完成Druid的整合 SpringBoot整合JDBC 可参考--------> SpringBoot整合JDBC_Maiko Star的博客-CSDN博客 1. 添加Druid依赖 在pom.xml文件中添加Druid的依赖项。例如&#xff1a; <dependency><groupId>com.ali…

《面试1v1》Kafka的架构设计是什么样子

&#x1f345; 作者简介&#xff1a;王哥&#xff0c;CSDN2022博客总榜Top100&#x1f3c6;、博客专家&#x1f4aa; &#x1f345; 技术交流&#xff1a;定期更新Java硬核干货&#xff0c;不定期送书活动 &#x1f345; 王哥多年工作总结&#xff1a;Java学习路线总结&#xf…

Audio2Face

1:下载链接。 Omniverse Enterprise 许可和定价 | NVIDIA 2:安装。 audio2face ue插件 教程&#xff1a; 1&#xff1a;【青松微课堂】Audio2Face数字人工作流&#xff1a;软件的下载安装与UI介绍 【青松微课堂】Audio2Face数字人工作流&#xff1a;软件的下载安装与UI介绍_…

vue3下的uniapp跨域踩坑

uniapp vue3 H5跨域踩坑 开发移动端H5的时候由于后端接口没有做跨域处理&#xff0c;因此需要做下服务器代理&#xff0c;于是百度搜索了uniapp下h5的跨域配置 在manifest下的h5配置proxy&#xff0c;大概是这样: "h5": {"devServer": {"https"…

分享几个水滴效果的按钮

先看效果&#xff1a; 再看代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>水滴效果的按钮</title><link rel"stylesheet" href"https://codepen.io/nico…

Python数据分析实战-datafram按某(些)列按值进行排序(附源码和实现效果)

实现功能 Python对datafram按某&#xff08;些&#xff09;列进行排序&#xff08;附源码和实现效果&#xff09; 实现代码 import pandas as pd# 读取数据 datapd.read_csv(E:\数据杂坛\\UCI Heart Disease Dataset.csv) dfpd.DataFrame(data) print(df.head())# # 按某列的…

桥梁安全生命周期监测解决方案

一、方案背景 建筑安全是人们生产、经营、居住等经济生活和人身安全的基本保证&#xff0c;目前我国越来越多的建筑物逐 步接近或者已经达到了使用年限&#xff0c;使得建筑物不断出现各种安全隐患&#xff0c;对居民的人身安全和财产安全产 生不利影响&#xff0c;因此房…

html基于onmouse事件让元素变颜色

最近&#xff0c;在书写div块时&#xff0c;遇到一个小问题&#xff0c;这个小问题我搞了将近一个小时多才慢慢解决。问题是这样子的&#xff0c;有一个div块&#xff0c;我想让鼠标移上去变成蓝色&#xff0c;移开变成灰色&#xff0c;当鼠标按下去时让他变成深蓝色。于是就单…

quartus工具篇——ROM ip核

quartus工具篇——ROM ip核 1、ROM简介 FPGA中的ROM(Read-Only Memory)是一种只读存储器,主要用来存储固化的初始化配置数据。FPGA ROM的特性主要有: 预编程初始化 - ROM在FPGA编程时就已经写入了初始值,这些值在整个工作周期保持不变。初始化配置 - ROM通常用来存储FPGA的初…