stm32 IIC通信
文章目录
- 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)。

相关文章:
stm32 IIC通信
文章目录 IIC 通信一、硬件电路二、IIC时序基本单元三、IIC时序1.指定地址写2.当前地址读3.指定地址读 IIC 通信 IIC总线是一种通用数据总线,有两根通信线(SCL(串行时钟总线),SDA(串行数据总线))。 特点:同…...
Elasticsearch监控工具Cerebro安装
Elasticsearch监控工具Cerebro安装 1、在windwos下的安装 1.1 下载安装包 https://github.com/lmenezes/cerebro/releases/download/v0.9.4/cerebro-0.9.4.zip 1.2 解压 1.3 修改配置文件 如果需要修改相关信息,编辑C:\zsxsoftware\cerebro-0.9.4\conf\applica…...
RTOS 低功耗设计原理及实现
RTOS 低功耗设计原理及实现 文章目录 RTOS 低功耗设计原理及实现👨🏫前言👨🔬Tickless Idle Mode 的原理及实现👨🚀Tickless Idle Mode 的软件设计原理👨💻Tickless Idle Mo…...
PaddleOCR C++编译出错解决方案
文章目录 前言一、环境准备1、主要环境2、源码下载3、C推理库下载 二、报错信息1.静态库调用错误2.ld returned 1 exit status 总结 前言 最近,想尝试下PaddleOCR的C推理,但是过程不如人所愿,除了很多问题,这里捡重点的说下吧&…...
89、简述RabbitMQ的架构设计
简述RabbitMQ的架构设计 BrokerQueueExchangeRoutingKeyBinding信道架构设计图Broker RabbitMQ的服务节点 Queue 队列,是RabbitMQ的内部对象,用于存储消息。RabbitMQ中消息只能存储在队列中。生产者投递消息到队列,消费者从队列中获取消息并消费。多个消费者可以订阅同一…...
63 | 图像处理
文章目录 Python图像处理什么是图像处理?Python图像处理库安装Pillow库加载和显示图像调整图像大小裁剪图像调整图像亮度、对比度和色彩平衡应用滤镜练习题Python图像处理 什么是图像处理? 图像处理是指使用计算机算法来改变图像的外观或特征。它可以用于许多不同的应用程序…...
Stable Diffusion - 扩展 Roop 换脸 (Face Swapping) 插件的配置与使用
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/131856141 官网:GitHub - roop,参考论文:RobustSwap: A Simple yet Robust Face Swapping Model against Attr…...
opencv实现替换证件照颜色
程序可以实现蓝色底片变为红色底片(但有点小bug) 修改自:opencv:HSV颜色模型_opencv hsv_君浪的博客-CSDN博客 相关文章:OpenCV Mat数据类型指针ptr的使用_cv::mat ptr_AoboSir的博客-CSDN博客 【OpenCV】HSV颜色识…...
Elasticsearch【全文检索、倒排索引、应用场景、对比Solr、数据结构】(一)-全面详解(学习总结---从入门到深化)
目录 Elasticsearch介绍_全文检索 Elasticsearch介绍_倒排索引 Elasticsearch介绍_Elasticsearch的出现 Elasticsearch介绍_Elasticsearch应用场景 Elasticsearch介绍_Elasticsearch对比Solr Elasticsearch介绍_Elasticsearch数据结构 Elasticsearch介绍_全文检索 Elasti…...
了解 3DS MAX 3D摄像机跟踪设置:第 2 部分
推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 项目设置 步骤 1 打开“后效”。 打开后效果 步骤 2 转到合成>新合成以创建新合成。 将“宽度”和“高度”值分别设置为 1280 和 720。将帧速率设置为 25,将持续时间设置为 12 秒。单…...
MySQL 判断 JSON 数组是否相等
文章目录 1.问题2.使用 JSON_CONTAINS 与 JSON_LENGTH参考文献 1.问题 JSON(JavaScript Object Notation)是流行的互联网应用服务之间的数据交换格式。 MySQL 从 5.7 版本开始支持 RFC 7159 定义的 JSON 规范,主要有 JSON 对象 和 JSON 数组…...
uni-app个人中心
一. 介绍uni-app: uni-app 是基于Vue.js框架开发的一个跨平台移动应用开发框架,可以同时支持多个平台(如iOS、Android、Web等)的应用开发。采用了统一的语法和组件规范,可以大大简化跨平台开发的工作,提高…...
只需3步,使用Stable Diffusion无限生产AI数字人视频
效果演示 先看效果,感兴趣的可以继续读下去。 没有找到可以上传视频的地方,大家打开这个网盘链接观看:https://www.aliyundrive.com/s/CRBm5NL3xAE 基本方法 搞一张照片,搞一段语音,合成照片和语音,同…...
Mysql执行计划字段解释
文章目录 一、前言二、如何查看执行计划三、执行计划各字段解释四、select_type4.1、SIMPLE(简单查询)4.1.1、简单的单表查询4.1.2、多表连接查询 4.2、PRIMARY(主查询)4.2.1、包含复杂子查询的外层查询4.2.2、UNION语句中的第一个…...
Linux -- 线程
文章目录 1. 线程概念1.1 概念1.2 理解(Linux OS角度)1.3 见一见 2. 线程优缺点3. 线程使用3.1 认识线程库3.2 使用3.2.1 线程创建3.2.2 线程等待3.2.3 线程退出3.2.4 线程取消3.2.5 获取线程id3.2.6 线程分离 3.3 理解线程库3.4 证明线程栈3.5 线程局部…...
Android:实时更新时间
心想着也就是更新精确到分钟,不用精确到秒,定时器就没有必要,系统是有广播Intent.ACTION_TIME_TICK可以直接用 动态注册广播 主方法里面调用一下 //要先设置一下当前时间,不然刷新时间会等到1分钟后再刷新 tv_HM.setText(getHM…...
24 鼠标常用事件
鼠标进入:enterEvent鼠标离开:leaveEvent鼠标按下:mousePressEvent鼠标释放:mouseRelaseEvent鼠标移动:mouseMoveEvent 提升为自定义控件MyLabel 代码: //mylabel.h #ifndef MYLABEL_H #define MYLABEL_H#…...
了解 3DS MAX 3D摄像机跟踪设置:第 4 部分
推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 项目设置 步骤 1 打开“后效”。 打开后效果 步骤 2 转到合成>新合成以创建新合成。 将“宽度”和“高度”值分别设置为 1280 和 720。将帧速率设置为 25,将持续时间设置为 12 秒。单…...
nginx吞吐量调优
调整worker_processes和worker_connections: worker_processes:设置为服务器的CPU核心数或更高。例如,如果服务器有8个CPU核心,可以将worker_processes设置为8。worker_connections:设置每个worker进程所能处理的最大连…...
Python操作Excel文件,修改Excel样式(openpyxl)
秋风阁-北溪入江流 文章目录 安装依赖库openpyxlopenpyxl的操作加载文件,获取sheet加载文件load_workbook获取sheet 遍历单元格迭代遍历索引遍历 单元格行高和列宽的修改Excel列号与字母的转换Excel行高修改Excel列宽修改 Excel表格文字对齐属性设置修改单元格框线保…...
基于模型参考自适应的永磁同步电机参数辨识仿真模型探索
基于模型参考自适应的永磁同步电机参数辨识仿真模型 具有电阻、电感辨识,且精度分别在99.9%左右 参考文献:附带搭建仿真过程的参考文献,如图在永磁同步电机(PMSM)的研究与应用中,准确的参数辨识至关重要。今…...
Unity IL2CPP热更新实战:动态库与global-metadata.dat的无缝替换方案
1. IL2CPP热更新的核心挑战 在移动游戏开发中,热更新能力直接决定了产品的运维效率和用户体验。传统的Mono运行时支持Assembly动态加载,而IL2CPP作为Unity的AOT编译方案,将C#代码转换为C后编译为原生二进制,这带来了性能提升却牺…...
别再手动配环境了!用Docker Compose一键部署GeoServer,5分钟搞定TIF影像发布
5分钟极速部署GeoServer:Docker Compose全自动化实战指南 每次新项目启动都要重复配置GeoServer?还在为环境变量和端口冲突头疼?GIS开发中最耗时的从来不是业务逻辑,而是这些本该自动化的基础设施搭建。今天我们就用Docker Compo…...
别再只会用0x22读VIN了!手把手教你用UDS诊断DID读取ECU的隐藏数据(附实战报文分析)
解锁ECU隐藏数据:UDS诊断中DID的高级应用实战 在汽车电子诊断领域,UDS协议中的0x22服务(读取数据标识符)常被工程师们简化为读取VIN码等基础信息的工具。但DID的真正潜力远不止于此——它就像一把可以打开ECU内部数据宝库的万能钥…...
从AudioLDM到商业应用:AI生成冥想音乐的技术全景与实战指南
从AudioLDM到商业应用:AI生成冥想音乐的技术全景与实战指南 引言 在快节奏的现代生活中,冥想作为一种有效的减压方式日益普及,而与之相伴的冥想音乐需求也持续增长。传统的音乐创作模式周期长、成本高,难以满足海量、个性化的需求…...
寻音捉影·侠客行企业应用:制药企业GMP培训录音中自动核查‘无菌操作’等SOP术语
寻音捉影侠客行企业应用:制药企业GMP培训录音中自动核查‘无菌操作’等SOP术语 1. 引言:制药企业的音频管理痛点 在制药企业的日常运营中,GMP(良好生产规范)培训是确保药品质量和生产安全的关键环节。每次培训都会产…...
GTE文本向量中文模型保姆级教程:从环境搭建到API调用全流程
GTE文本向量中文模型保姆级教程:从环境搭建到API调用全流程 1. 环境准备与快速部署 1.1 系统要求与依赖安装 在开始之前,确保你的系统满足以下基本要求: 操作系统:推荐使用Ubuntu 18.04或更高版本Python版本:Pytho…...
OpenClaw多任务测试:百川2-13B-4bits模型在并行处理中的显存管理
OpenClaw多任务测试:百川2-13B-4bits模型在并行处理中的显存管理 1. 测试背景与动机 上周在调试一个自动化工作流时,遇到了一个典型问题:当OpenClaw同时处理文件格式转换、网页信息抓取和邮件发送任务时,后台的百川2-13B模型频繁…...
3分钟掌握Mermaid:用代码思维绘制专业图表的核心技巧
3分钟掌握Mermaid:用代码思维绘制专业图表的核心技巧 【免费下载链接】mermaid mermaid-js/mermaid: 是一个用于生成图表和流程图的 Markdown 渲染器,支持多种图表类型和丰富的样式。适合对 Markdown、图表和流程图以及想要使用 Markdown 绘制图表和流程…...
MobaXterm配置教程:Chord视频时空理解工具远程开发
MobaXterm配置教程:Chord视频时空理解工具远程开发 1. 为什么需要MobaXterm来开发Chord视频时空理解工具 在AI视频理解领域,Chord这类工具通常部署在高性能服务器或云环境中,本地开发机往往难以承载其计算需求。这时候,远程开发…...
