GD 32 IIC通信协议
前言:
...
通信方式
通信方式分为串行通信和并行通信。常见的串口就是串行通信的方式
常用的串行通信接口
常用的串行通信方式有USART,IIC,USB,CAN总线
同步与异步
同步通信:IIC是同步通信,有两个线一个是时钟信号线,一个数数据信号线,不需要约定特定的通信频率。
异步通信:约定一个特定的频率,根据这个频率接收和解析数据,对时序的要求比较严格。
单工和双工
IIC总线设计成开漏输出,可以解决电路短路问题
与位运算
通0与结果是0,同1与结果是1
为什么使用开漏输出,以下是使用开漏输出的原理,开漏输出配合上拉电阻,解决短路问题
线与的概念
IIC 数据格式
主机向从机写数据
起始位和停止位:主机发送的,来控制数据什么时候开始什么时候结束
接下来是从机地址和写控制位,前7位置是地址后面一位控制是写数据还是读数据 写如数据将控制位设置为 ‘0’表示写数据
发送数据之后就是从机应答位,需要从机给一个反馈信号,主机发送数据需要从机给一个应答,从机返回数据需要主机给一个应答
主机向从机读数据
首先是起始位:然后是从机的地址和 + 读控制位(设置为 “1” 表示主机向从机读数据)
从机接收到信号之后给主机一个应答,然后是从机返回的实际数据,主机接收到一个数据之后给一个
主机的应答,在主机接收完最后一个数据之后会跟着一个非应答位,然后是停止位
主机先发送再接收
从机地址
高7位表示从机的地址,低一位表示从机的方向为,是用于控制方向的,1表示主机向从机读数据
0 表示主机向从机写数据。
数据的地址高7位中的前面4位是固定在芯片的内部的是没法改变的,低3位是可以改变的(可以通过硬件电路去配置)。
3 个地址线支持在一个总线上挂载8个设备也就是2的三次方
IIC 总线的实现
IIC 通信协议中SCL线是主机控制输出的,SDA信号线是主机和从机都可以控制输出,IIC总线空闲时SDA 和 SCL 都是处于高电平的状态,数据是按照字节的方式进行传输的
IIC 电器协议
IIC起始信号
IIC 停止信号
IIC 主机发送数据格式
SCL 在高电平的时候数据不能有变化,这和时候从机读取数据
IIC 主机读取返回的数据
从机在SCL低电平的时候将数据放到SDA线上,在主机把SCL线变为高电平的时候,从机不能改变SDA上的数据,这个时候主机获取SDA上的数据。
注:在主机接收数据之前要在主机这一侧器释放SDA也就是将IO口释放为高电平
IIC 接收应答
IIC 发送应答 0 表示应答,1表示接收应答
存储器协议
...
相关文章:

GD 32 IIC通信协议
前言: ... 通信方式 通信方式分为串行通信和并行通信。常见的串口就是串行通信的方式 常用的串行通信接口 常用的串行通信方式有USART,IIC,USB,CAN总线 同步与异步 同步通信:IIC是同步通信,有两个线一个是时钟信号线,一个数数据…...

Spring Task初学
介绍 Spring Task 是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑 为什么要在Java程序中使用Spring Task? 运行效果 cron表达式:一般日和周不会同时出现 入门案例 启动类添加注解EnableScheduling开始任务调度 创建MyTask类…...

决策树可解释性分析
决策树可解释性分析 决策树是一种广泛使用的机器学习算法,以其直观的结构和可解释性而闻名。在许多应用场景中,尤其是金融、医疗等领域,模型的可解释性至关重要。本文将从决策路径、节点信息、特征重要性等多个方面分析决策树的可解释性&…...

BUGKU-WEB never_give_up
解题思路 F12查看请求和响应,查找线索 相关工具 base64解码URL解码Burp Suit抓包 页面源码提示 <!--1p.html--> 2. 去访问这个文件,发现直接跳转到BUGKU首页,有猫腻那就下载看看这个文件内容吧 爬虫下载这个文件 import requests …...

hive自动安装脚本
使用该脚本注意事项 安装hive之前确定机子有网络。或者yum 更改为本地源,因为会使用epel仓库下载一个pv的软件使用该脚本前提是自行安装好mysql数据库准备好tomcat软件包,该脚本使用tomcat9.x版本测试过能正常执行安装成功,其他版本没有测试…...

unix 用户态 内核态
在UNIX操作系统中,"用户态"和"内核态"是两种不同的运行模式,它们定义了程序在执行时的权限级别: 用户态(User Mode): 用户态是程序运行的常规状态,大多数应用程序在执行时…...

GD32 IAP升级——boot和app相互切换
GD32 IAP升级——boot和app相互切换 目录 GD32 IAP升级——boot和app相互切换1 Keil工程设置1.1 修改ROM1.2 Keil烧录配置 2 代码编写2.1 app跳转2.2 软件重启2.3 app中断向量表偏移 结束语 1 Keil工程设置 1.1 修改ROM GD32内部Flash是一整块连续的内存,但是因为…...

C++11革新之旅:探索C++编程的无限可能
C11革新之旅:探索C编程的无限可能 C11,作为C语言的一个重要标准,为C编程带来了革命性的变革。它不仅引入了众多新特性和改进,还极大地增强了C的表达能力、提高了程序的性能和资源利用率。本文将从多个方面深入探讨C11的新特性&am…...

免费自动化AI视频剪辑工具
下载地址:https://pan.quark.cn/s/3c5995da512e FunClip是一款完全开源、本地部署的自动化视频剪辑工具,通过调用阿里巴巴通义实验室开源的FunASR Paraformer系列模型进行视频的语音识别,随后用户可以自由选择识别结果中的文本片段或说话人&a…...

Linux中安装C#的.net,创建运行后端或控制台项目
安装脚本命令: 创建一个sh文件并将该文件更改权限运行 sudo apt update wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb sudo apt-get upd…...

最长上升子序列LIS(一般+优化)
1. 题目 题目链接: B3637 最长上升子序列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 输入样例: 6 1 2 4 1 3 4 输出样例: 4 说明/提示: 分别取出 1、2、3、4 即可。 2. 具体实现 2.1 一般做法 dp[i]表示第i个位置的…...

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

详解C/C++输入输出
前言 C/C输入输出很多,在不同的情况会用不同的输入输出,有的题目在输入时可能换一种输入输出就能不会TLE,有的输入可能要循环输入,但是可以换一种输入直接就能把所有数据输入进去。C/C有哪些常用的输入输出,在什么时候…...

AI人工智能开发环境配置
AI人工智能 为什么使用Python来开发AI 人工智能被认为是未来的趋势技术。 已经有了许多应用程序。 因此,许多公司和研究人员都对此感兴趣。 但是这里出现的主要问题是,在哪种编程语言中可以开发这些 AI 应用程序? 有各种编程语言,…...

Tomcat 8.5 下载、安装、启动及各种问题
🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 本期内容主要介绍 Tomcat 8 的安装,以及可能会遇到的问题 文章目录 1. Tomcat 安装2. 可能会遇到的问题2.…...

Harbor系列之5:复制管理
Harbor的镜像复制功能 Harbor 提供镜像复制功能,允许用户以推送和拉取方式在不同 Harbor 仓库之间,以及 Harbor 与非 Harbor 仓库间(如Alibaba ACR、Quay、Aws ECR、Azu热ACR、Docker Registry、Docker Hub等)复制 image、chart …...

V.PS德国VPS详细测评
V.PS的德国机房位于法兰克福,默认接入电信CN2 GIA、联通CUII网络,针对中国大陆进行路由优化处理的。而且是强制移动走联通的CUII链路,确保三网都处在轻负载的网络环境下。 CPU是Intel Xeon Gold 6133 ,启用了BBR,归属德…...

【Vue3】组件通信之自定义事件
【Vue3】组件通信之自定义事件 背景简介开发环境开发步骤及源码总结 背景 随着年龄的增长,很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来,技术出身的人总是很难放下一些执念,遂将这些知识整理成文,以纪念曾经努力学习奋…...

[CTF]-PWN:ORW题型综合解析
经典ORW: 例题(极客大挑战 2019 Not Bad): 这里使用mmap函数创造了一个内存映射区域 从地址0x123000开始,大小位0x1000 权限为可写可执行(可读0x1,可写0x2,可执行0x3)…...

VSCode中yarn的安装和使用
VSCode只要是做前端的,大家都不陌生,就不讲其使用了。 Yarn是一款高效、可靠的JavaScript包管理器,与NPM类似,但有其独特的优势,如更高效的安装速度、更好的依赖管理等 要在VSCode中使用Yarn,需要按照以…...

Java后端面试复习7.23
进程和线程线程优先级线程状态线程构造方式三种推荐用哪种为什么线程中断调用什么方法,本线程怎检查为什么线程不应强制停止线程通信方式四种ThreadLocalFUtureTask线程礼让终止线程的另一个缺陷(锁)守护线程什么时候设置为守护县城sleep&…...

Arduino PID库 (2) –微分导致的过冲
Arduino PID库 (2) – Derivative Kick 参考:手把手教你看懂并理解Arduino PID控制库——微分冲击 pid内容索引-CSDN博客 Arduino PID库 (1)– 简介 问题 此修改将稍微调整derivative term。目标是消除一种称为“…...

基于强化学习算法玩CartPole游戏
什么事CartPole游戏 CartPole(也称为倒立摆问题)是一个经典的控制理论和强化学习的基础问题,通常用于测试和验证控制算法的性能。具体来说,它是一个简单的物理模拟问题,其目标是通过在一个平衡杆(倒立摆&a…...

uniapp0基础编写安卓原生插件和调用第三方jar包(Ch34的jar包)和如何解决android 如何Application初始化
前言 我假设你会uniapp安卓插件开发了,如果不会请看这篇文章,这篇文章是0基础教学。 这篇文章我们将讲一下如何使用CH34XUARTDriver.jar进行开发成uniapp插件。 它的难点是:uniapp如何Application初始化第三方jar包 先去官网下载CH340/CH341的USB转串口安卓免驱应用库:h…...

使用Leaflet进行船舶航行警告区域绘制实战
目录 前言 一、坐标格式转换 1、数据初认识 2、将区域分割成多个点 3、数据转换 4、数据转换调用 二、WebGIS展示空间位置信息 1、定义底图 2、Polygon的可视化 3、实际效果 三、总结 前言 通常而言,海事部门如海事局,通常会在所述的管辖区域内…...

用Ollama 和 Open WebUI本地部署Llama 3.1 8B
说明: 本人运行环境windows11 N卡6G显存。部署Llama3.1 8B 简介 Ollama是一个开源的大型语言模型服务工具,它允许用户在自己的硬件环境中轻松部署和使用大规模预训练模型。Ollama 的主要功能是在Docker容器内部署和管理大型语言模型(LLM&…...

计算机毕业设计选题推荐-学生作业管理系统-Java/Python项目实战
✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…...

RIP实验
实验拓扑: 实验要求: R1-R2-R3-R4-R5:RIP 100 运行版本2 R6-R7:RIP 200 运行版本1 1.使用合理IP地址规划网络,各自创建环回接口 2.R1创建环回 172.16.1.1/24 172.16.2.1/24 172.16.3.1/24 3.要求R3使用R2访问R1环…...

手把手教你如何在宝塔上添加可道云登录页面的ICP备案信息,别跟权威开玩笑。
如何在宝塔上添加可道云登录页面的ICP备案信息 事情的原由来我们开始吧首先登录你的宝塔页面双击打开index.php文件保存退出即可 感谢大佬,希望对被查到的朋友有所帮助! 事情的原由 今天突然收到腾讯云发来的一封Email,说我需要整改我的网站…...

基于JSP技术的大学生校园兼职系统
你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:JSP 数据库:MySQL 技术:JSPJavaBeans 工具:MyEclipse,Tomcat,Navicat 系统展示 首页 学…...

浙江建设职业学校网站/seo推广培训资料
大家好,这是我的第一篇blog,以前并未发表过相关的文章,那么今天我为什么要写点东西呢?自己也不是很清楚,就是想写点大实话,写日记对于coder一族我想太过于老土了,有那个时间不如去阅读几本好书&…...

java 网站开发 教程/网站seo 优化
作者介绍 道明学长 腾讯数据PM一只; 告别野路子,带你探索数据新世界; “数据人创作者联盟”成员。 “金三银四”的换工作热潮已经过去两个月了,有人欢喜有人愁,身边有不少朋友斩获了多个大厂产品offer并已顺利入职…...

商务网站开发实验报告/谷歌seo新规则
上一节讲了 常微分方程的三种离散化 方法:差商近似导数、数值积分、Taylor 多项式近似。 目录 2 欧拉(Euler)方法 2.1 向前 Euler 公式、向后 Euler 公式 2.2 Euler 方法的误差估计 3 改进的 Euler 方法 3.1 梯形公式 …...
个性网站建设网站/搜索引擎优化策略有哪些
视频讲解:https://www.imooc.com/video/13049...

汕尾网站建设/seo站外优化平台
1. 向量组之间的线性表出的定义与性质 2. 向量组线性表出的矩阵形式 3. 矩阵乘积导出的线性表出...

wordpress 栏目投稿/优化推广网站淄博
首先PHP语言是一种面向对象的语言而C语言是面向过程的。PHP主要是用来开发web程序的语言,而C语言是种广泛使用的语言,尤其用来书写一下比较复杂的后台代码。 PHP和C语言一样,有着if, else, elseif ,switch, while, do-while, for, break, con…...