调试软件iic协议心得

news2024/12/25 0:20:36

如何判断发送成功?

主控发送了一个字节8位(8个 SCL 时钟)的数据后,在第9个时钟周期,释放 SDA 控制权(IO 引脚输出改为输入),读取 SDA 状态,读到低电平表示通信成功,为高通信失败。

iic协议对时序要求严格,所以要注意:

  • 首先,总线必须处于空闲状态
  • I2C主控向要通信的从机发送一个START 信号
  • I2C主控发送 I2C从设备的地址
  • I2C主控传输读/写标志。主控告诉从设备它是想要向从机发送数据(WRITE)还是接收从机的数据(READ)。
  • I2C从设备传输ACK/NACK(希望是ACK)。0表示确认,1表示未确认。
  • 一旦主机收到了0(ACK),主机就会以8位数据包的形式将数据传输给从机。
  • I2C主控传输ACK/NACK(希望是NACK)
  • 当数据序列传输完毕时,主机发送STOP命令。
  • 总线返回空闲状态

部分示例:

发送从机写地址0xD0

发送写寄存器地址0x6B

写入寄存器内容0X80

 注意事项:

1.  初步调试需要借助示波器或逻辑分析仪。

2. 使用开发板的demo (比如N32WB031)需要注意SDA,SCL 切换输入模式。如果都设置为OD,则不要切换为输入模式。

3. 发送slave id (从机地址),需要注意第9个scl 时钟周期是ACK 。

参考链接:

https://blog.csdn.net/weixin_47969962/article/details/132404887

实现代码:

STM32-软件模拟I2C - 不要让自己太懒 - 博客园 (cnblogs.com)

调试:

https://zhuanlan.zhihu.com/p/681086567

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

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

相关文章

聊聊路径规划算法(四)——滚动在线RRT算法和BUG算法

基本RRT算法更偏向于遍历所有自由空间直到获取可行路由性,这使得它不能够进行未知或动态环境条件中的机器人实时运动计划。利用滚动计划的思路可以将RRT算法加以完善,使之更具有实时规划能力。 滚动规划 机器人在不确定的或动态周围环境中行走时&#x…

面试题集中营—GC日志简析及频繁GC的调优

如何查看GC日志 有两种方式查看GC日志&#xff0c;一种是动态命令行查看 jstat -gc <pid> 300 5 第二种就是在JVM参数中增加打印的参数&#xff0c;如下&#xff1a; -XX:PrintGCDetails -XX:PrintGCTimeStamps 表示打印每次GC的日志以及GC发生的时间 -Xloggc:gc.log …

LeetCode:203.移除链表元素

&#x1f3dd;1.问题描述&#xff1a; &#x1f3dd;2.实现代码&#xff1a; typedef struct ListNode ListNode; struct ListNode* removeElements(struct ListNode* head, int val) {if(headNULL)return head;ListNode *NewHead,*NewTail;ListNode *pcurhead;NewHeadNewTail…

电动机保护器在电力系统中的重要性

摘要&#xff1a;在工业自动化领域&#xff0c;低压电动机广泛应用于各种机械设备&#xff0c;例如传动系统、生产线和泵。为了保证这些设备的正常运行&#xff0c;对低压电动机进行必要的保护至关重要。本文将详细介绍低压电动机的七种保护方式&#xff0c;包括过载保护、短路…

spring security登录认证授权

spring security登录认证授权 是什么 Spring Security 主要实现了Authentication&#xff08;认证&#xff0c;解决who are you? &#xff09; 和 Access Control&#xff08;访问控制&#xff0c;也就是what are you allowed to do&#xff1f;&#xff0c;也称为Authorizat…

基于ssm汽车租赁系统业务管理子系统论文

系统简介 随着信息互联网购物的飞速发展&#xff0c;一般企业都去创建属于自己的管理系统。本文介绍了汽车租赁系统业务管理子系统的开发全过程。通过分析企业对于汽车租赁系统业务管理子系统的需求&#xff0c;创建了一个计算机管理汽车租赁系统业务管理子系统的方案。文章介…

【MySQL 数据宝典】【内存结构】- 005 Log Buffer

Log Buffer Log Buffer&#xff1a;日志缓冲区&#xff0c;用来保存要写入磁盘上log文件&#xff08;Redo/Undo&#xff09;的数据&#xff0c;日志缓冲区的内容定期刷新到磁盘log文件中。日志缓冲区满时会自动将其刷新到磁盘&#xff0c;当遇到BLOB或多行更新的大事务操作时&…

【智能排班系统】Quartz结合Cron-Utils自定义时间发送上班、休息提醒

文章目录 Quartz&#xff1a;强大的Java作业调度引擎Quartz概述核心概念与架构配置文件主配置&#xff08;配置主要调度器设置、事务&#xff09;线程池配置&#xff08;调整作业执行资源&#xff09;SimpleThreadPool特定属性自定义线程池 RAMJobStore配置&#xff08;在内存中…

C# 窗体应用程序 Chart控件显示实时曲线

IDE: VS2019 项目模板&#xff1a;C# windows 窗体应用(.NET Framework) 【参考】 B站上教程C#Chart控件画折线图的使用&#xff0c;关于Chart控件的属性&#xff0c;介绍得非常详细。B站上教程C#上位机Chart控件实时曲线终极讲解&#xff0c;对鼠标滚轮事件等&#xff0c;多…

NLP任务全览:涵盖各类NLP自然语言处理任务及其面临的挑战

自然语言处理(Natural Language Processing, 简称NLP&#xff09;是计算机科学与语言学中关注于计算机与人类语言间转换的领域。NLP将非结构化文本数据转换为有意义的见解&#xff0c;促进人与机器之间的无缝通信&#xff0c;使计算机能够理解、解释和生成人类语言。人类等主要…

基于SkyEye运行Qt:著名应用程序开发框架

Qt是一个著名的跨平台的C图形用户界面应用程序开发框架&#xff0c;目前包括Qt Creator、Qt Designer等等快速开发工具&#xff0c;还支持2D/3D图形渲染、OpenGL&#xff0c;允许真正的组件编程&#xff0c;是与GTK、MFC、OWL、ATL一样的图形界面库。使用Qt开发的软件可以做到一…

excel 无法正确处理 1900-03-01 前的日期

问题由来&#xff1a;excel 用公式 TEXT(A1,"yyyy-mm-dd") 转日期时&#xff0c;当A1 的值等于59 的时候&#xff0c;返回值是1900-02-28&#xff1b;当A1 的值等于61 的时候&#xff0c;返回值是1900-03-01&#xff1b;那么当 A1的值为 60 的时候&#xff0c;返回值…

[大模型]MiniCPM-2B-chat WebDemo部署

MiniCPM-2B-chat WebDemo部署 MiniCPM-2B-chat 介绍 MiniCPM 是面壁智能与清华大学自然语言处理实验室共同开源的系列端侧大模型&#xff0c;主体语言模型 MiniCPM-2B 仅有 24亿&#xff08;2.4B&#xff09;的非词嵌入参数量。 经过 SFT 后&#xff0c;MiniCPM 在公开综合性…

开发与产品的战争之自动播放视频

开发与产品的战争之自动播放视频 起因 产品提了个需求&#xff0c;对于网站上的宣传视频&#xff0c;进入页面就自动播放。但是基于我对chromium内核的一些浅薄了解&#xff0c;我当时就给拒绝了: “浏览器不允许”。&#xff08;后续我们浏览器默认都是chromium内核的&#…

C盘越用越大?教你如何科学管理C盘空间

前言&#xff1a; 如图&#xff0c;左边是我多开的E5电脑&#xff0c;装的是LTSC2019_210707F多开封装版&#xff0c;C盘占用8.5GB&#xff0c;右边是我平常打游戏写代码的电脑&#xff0c;装的是Win11 22H2&#xff0c;C盘占用30GB。两台电脑都关闭了休眠&#xff0c;C盘的虚拟…

【鸿蒙开发】画布组件 Canvas

1. Canvas 提供画布组件&#xff0c;用于自定义绘制图形。 接口&#xff1a; Canvas(context?: CanvasRenderingContext2D) 参数&#xff1a; 参数名 参数类型 必填 默认值 参数描述 context CanvasRenderingContext2D 否 - 不支持多个Canvas共用一个CanvasRende…

GPT国内怎么用

2022年11月&#xff0c;OpenAI发布了ChatGPT&#xff0c;这标志着大型语言模型在自然语言处理领域迈出了巨大的一步。ChatGPT不仅在生成文本方面表现出了惊人的流畅度和连贯性&#xff0c;更为人工智能应用开启了全新的可能性。 ChatGPT的推出促进了人工智能技术在多个领域的广…

查看apk是64位32位(三种方法)

通过检查APK文件&#xff0c;你可以确定该APK支持的架构类型&#xff0c;包括它是为64位&#xff08;例如arm64-v8a、x86_64&#xff09;还是32位&#xff08;例如armeabi-v7a、x86&#xff09;架构准备的。Android应用程序可以包含多个不同的二进制文件&#xff0c;每个文件针…

数组和指针的联系(C语言)

数组和指针是两种不同的数据类型&#xff0c;数组是一种构造类型&#xff0c;用于存储一组相同类型的变量&#xff1b;而指针是一种特殊类型&#xff0c;专门用来存放数据的地址。数组名除了sizeof(数组名)和&数组名表示整个数组外&#xff0c;其他情况下都表示的是首元素的…

说说你对图的理解?相关操作有哪些?

一、是什么 在计算机科学中&#xff0c;图是一种抽象的数据类型&#xff0c;在图中的数据元素通常称为结点&#xff0c;V是所有顶点的集合&#xff0c;E是所有边的集合 如果两个顶点v,w&#xff0c;只能由v向w&#xff0c;而不能由w向v&#xff0c;那么我们就把这种情况叫做一…