江协科技stm32————10-4 I2C通信协议

目录

I2C外设简介

I2C功能框图 

基本结构图(一主多从)

GPIO复用输入输出图 

 主机发送​编辑

 START

stop ​

EV5 (标志位)

BTF

主机接收

ACK

 软件/硬件波形对比

I2C外设简介

  •  可变多主机模型
  • 11110作为10位地址模式的标志位,后面跟着的8位位地址位

I2C功能框图 

 

一、SDA和SCL借用GPIO的复用模式与外部相连 

二、一个字节的数据写入DR,在数据移位寄存器没有数据移位时,DR的值转入移位寄存器,在其移位过程中,下一个数据就可以在DR中等待,移位完成立即接上,当R的值转入移位寄存器时,置状态寄存器的TXE位为1,表示发送寄存器为空

三、接收时,数据由SDA一位一位的移入移位数据寄存器,收齐之后,整体转入DR,置标志位RXNE为1,表示接收寄存器非空

四、STM32为 可变多主机模型,在作为从机时,支持同时响应两个从机地址,所以有自身和双地址寄存器

基本结构图(一主多从)

 

I2C高位先行,移位寄存器是左移的

GPIO配置为复用开漏输出模式 

GPIO复用输入输出图 

 

 主机发送

STM32默认为从模式

7位主发送流程:起始、从机地址、应答、数据1、应答、数据2、应答、……、停止 

EV8_1时,移位寄存器空,DR空,写入DR,

EV8时,数据由DR转入移位寄存器,此时DR空,移位寄存器非空,继续写入数据在DR中EV8状态消失,随后数据由DR转入移位寄存器,此时DR空,移位寄存器非空………………直到所有想要的数据发送完毕,EV8_2,移位寄存器空,BTF字节发送结束,随后STOP。

 START

写1产生起始条件

 

stop 

EV5 (标志位)

SB为1,表示起始条件已发送

BTF

 

主机接收

 

起始,EV5(起始条件已发送),寻址,接收应答,EV6(寻址已完成),数据1(代表数据正在通过移位寄存器进行输入),EV6_1(数据还在移位,没有标志位),数据1传输完成时,A响应,此时移位寄存器已经转入一个字节的数据1,将数据1的一个字节整体转入数据寄存器DR中(EV7:置RXNE,表示DR非空),重复此过程接收数据,当不在需要接收数据时,EV7_1:将ACK置0,和STOP请求

ACK

 

 软件/硬件波形对比

 

软件时序的时钟周期、占空比不如硬件规整(不影响效果) 

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

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

相关文章

disk manager操作教程 如何使用Disk Manager组件 Mac如何打开ntfs格式文件

macOS系统有一个特别明显的弱点,即不能对NTFS格式磁盘写入数据。想要适合Mac系统使用来回转换磁盘格式又十分麻烦,这该怎么办呢?Tuxera ntfs for mac作为一款Mac完全读写软件,大家在安装该软件后,能充分使用它的磁盘管…

MyBatis中的#{}和${}区别、ResultMap使用、MyBatis常用注解方式、MyBatis动态SQL

#{}和${}区别: #{}:是占位符,采用预编译的方式sql中传值,防止sql注入,如果我们往sql中列值传递一般使用 #{}。 ${}:采用字符串拼接的方式直接拼接到sql语句中,一般不用于sql列值传递&#xf…

macbook怎么换自定义壁纸?Mac怎么设置壁纸 macOS中如何轻松删除不需要的壁纸?

自定义壁纸,不仅是为了优化桌面外观,还能在很大程度上影响用户情绪。一张好看的壁纸,可以显著提升用户的使用体验。因此,掌握更换和删除壁纸的操作技巧,就显得十分重要。下面详细解读如何在Mac上设置壁纸,以…

SkyWalking部署(监控系统)

简介 SkyWalking 是一个开源的应用性能监控 (APM) 和可观测性平台,旨在帮助开发者、运维人员和架构师监控、诊断和优化微服务架构中的应用。SkyWalking 提供了一套完整的工具链,用于收集、分析和可视化应用的性能指标、追踪和日志数据。 SkyWalking 的…

排序算法(冒泡、插入、选择、快排、归并)原理动画及Python、Java实现

排序算法(冒泡、插入、选择、快排、归并)原理动画及Python、Java实现 1 冒泡排序1.1 原理1.2 Python、Java实现 2 插入排序2.1 原理2.2 Python、Java实现 3 选择排序3.1 原理3.2 Python、Java实现 4 快速排序4.1 原理4.2 Python 5 归并排序5.1 原理5.2 P…

AI绘图提示词/咒语/词缀/关键词使用指南(Stable Diffusion Prompt 最强提示词手册)

一、为什么学习AI绘画关键词 在人工智能技术飞速发展的今天,AI绘画已成为艺术领域的一大热点。学习AI绘画关键词,不仅有助于我们掌握这一新兴技术,还能拓宽我们的创作思路,实现艺术与技术的完美融合。以下是学习AI绘画关键词的几…

STM32外设SPI(串行通信),W25Q64(8Mb)

1 非易失存储器:E2PROM,FLASH(断电不丢失) 2 易失存储器:SRAM,DRAM 3 W25Q64 1 从00 00 00 到 7F FF FF 2 block(块),sector(扇区) ,page(页区) 写数据到FLASH(256字节) 读数据很快&#…

优化学习管理:Moodle和ONLYOFFICE文档编辑器的完美结合

目录 前言 一、什么是 Moodle 1、简单快速插入表单字段 3、免费表单模板库 4、开启无缝协作 三、在Moodle中集成ONLYOFFICE文档 四、在Moodle安装使用ONLYOFFICE 1、下载安装 2、配置服务器 3、在Moodle中使用ONLYOFFICE 文档活动 五、未来展望 写在最后 前言 在当今教育科技飞…

Apache Druid日志实时分析

业务分析 ​ 秒杀业务中,通常会有很多用户同时蜂拥而上去抢购热卖商品,经常会出现抢购人数远大于商品库存。其实在秒杀过程中,热卖商品并不多,几乎只占1%,而99%的流量都源自热卖商品,很有可能因为这1%的热…

C--四种排序方法的补充

上一篇文章因为时间原因只写了三种,这一篇来补充第四种,第四种的代码更多,所需要理解的也是更多的。 堆排序 想要学会堆排序,你必须了解二叉树的内容。堆排序的排序速度也是非常的快。 这里都已大堆为例 1.向上调整算法&#…

xampp安装federated插件,实现mysql数据同步

需求:a服务器上的mysql数据库data表插入新数据时,需要同步到b服务器上的data表中。 解决:a服务器上开启federated引擎插件,创建data1对应b服务器上的data表。 在a服务器上的data表创建触发器,data表插入数据后执行触发…

Vue的状态管理——Vuex34Pinia

Vue3中Vuex的使用_vue3 vuex-CSDN博客 VueX详解_组合式vuex-CSDN博客 15分钟学会Pinia Vuex 3和4详解 Vuex 3 Vuex 3是Vue.js 2.x版本的状态管理库,它提供了一种集中式存储和管理组件状态的方式。以下是Vuex 3的一些关键特性: 状态集中管理&#x…

建模杂谈系列250 Hello2Pymc

说明 pymc算是多年的老朋友了,中间失联了好几年。 内容 1 安装 安装更加麻烦了,不能很好的和其他的环境兼容。在官网上,也是建议用conda的方式安装。 conda create -c conda-forge -n pymc_env "pymc>5" conda activate p…

自闭症儿童托管学校

在自闭症儿童的成长道路上,寻找一个既能够提供专业康复又充满关爱的托管学校,是许多家庭的重要课题。星启帆自闭症儿童康复机构,作为国内规模较大的自闭症儿童托管学校,以其专业的师资力量、科学的康复方法、严格的管理制度以及温…

Milvus向量数据库-数据备份与恢复

前言 随着Milvus版本的持续迭代,越来越多的用户将其作为构建生产环境的向量数据服务使用。作为数据服务使用,其中的运维、数据安全、容灾备份自然是用户最关心且不容有失的需求。为解决这一需求,Milvus-backup项目工具应运而生。 Milvus-ba…

【并集查找 图论】2421. 好路径的数目

本文涉及知识点 C图论 LeetCode2421. 好路径的数目 给你一棵 n 个节点的树(连通无向无环的图),节点编号从 0 到 n - 1 且恰好有 n - 1 条边。 给你一个长度为 n 下标从 0 开始的整数数组 vals ,分别表示每个节点的值。同时给你…

【C++11及其特性】函数返回值当引用

函数返回值当引用目录 一.若返回变量为栈变量1.例子2.不能成为其他引用的初始值3.不能作为左值 二.若返回变量为静态变量或全局变量1.列子2.即可左值也可右值 三.若返回变量为形参1.普通形参2.引用形参 四.结论 一.若返回变量为栈变量 1.例子 返回的是局部变量的引用,这里用的…

【Python系列】SQLAlchemy 基本介绍

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

5.3二叉树——二叉树链式结构实现

本篇博客梳理二叉树链式结构 明确:二叉树是递归定义的 递归的本质:当前问题子问题,返回条件是最小规模的子问题 一、二叉树的遍历 1.前序、中序与后序遍历 (1)前序:根->左子树->右子树…