news 2026/7/15 15:15:37

IIC 一主多从频繁总线死锁、数据乱跳?状态机分时通信根治方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
IIC 一主多从频繁总线死锁、数据乱跳?状态机分时通信根治方案

嵌入式一主多通信比较常见,数据交叉交互,一不小心主控就超时总线死锁,头疼的很,数据如何梳理,分享一下我的经验,欢迎交流。

案例:
主机:MCU
从机:IC1,IC2
通信方式:IIC
通信方式为1个主机,2个从机,主机对从机可读可写。
IC1,IC2的设备地址不同,因为对从机操作要求可读可写,那么,总线通信设计要考虑鲁棒性,这里我采用的就是状态机分时通信,同一时间只对一个从机进行读或者写操作,这样就避免了,通信时数据交叉干扰问题。请看下图:

每读取/写入一个寄存器数据,就进入下一个状态,间隔10ms之后,再操作下一个寄存器,IC1设备的读/写操作完成,再去操作IC2设备的寄存器。
这样处理一主多从通信,数据交互就很清晰,用逻辑分析仪抓通信数据时看起来也一目了然。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/15 15:15:35

收藏!别再死磕ChatGPT赚钱了,真正聪明的人早已换道超车!

本文指出,虽然AI的红利期第一波已经结束,但并非意味着AI不能赚钱。相反,真正聪明的人已经不再执着于研究ChatGPT等AI工具本身,而是将重点放在如何利用AI提升自身专业能力,创造更大的价值。文章强调,AI正在成…

作者头像 李华
网站建设 2026/7/15 15:14:30

HarmonyOS知识库——导航架构与路由传参的设计模式

知识库 App 有 6 个页面、4 个底部导航 tab、十几条路由跳转路径。页面之间的跳转不是随意的——每条路由都有明确的参数设计,参数的类型和内容决定了目标页面的行为。搞清楚"从哪来、传什么、怎么用",是理解整个 App 数据流的关键。 完整效果…

作者头像 李华
网站建设 2026/7/15 15:13:23

5步实现图片到3D打印模型的智能转换

5步实现图片到3D打印模型的智能转换 【免费下载链接】ImageToSTL This tool allows you to easily convert any image into a 3D print-ready STL model. The surface of the model will display the image when illuminated from the left side. 项目地址: https://gitcode.…

作者头像 李华
网站建设 2026/7/15 15:13:08

新手必看:yocto-meta-ros项目快速上手攻略

新手必看:yocto-meta-ros项目快速上手攻略 【免费下载链接】yocto-meta-ros ROS (Robot Operating System) support layer 项目地址: https://gitcode.com/openeuler/yocto-meta-ros 前往项目官网免费下载:https://ar.openeuler.org/ar/ 你是否在…

作者头像 李华
网站建设 2026/7/15 15:12:59

神奇工具:5分钟在Windows上安装安卓应用,告别笨重模拟器

神奇工具:5分钟在Windows上安装安卓应用,告别笨重模拟器 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾想在Windows电脑上运行手机应用…

作者头像 李华
网站建设 2026/7/15 15:12:45

C语言学习笔记——动态内存分配

目录1 动态内存分配常用库函数1.1 free1.2 malloc1.3 calloc1.4 realloc2 常见的动态内存错误2.1 对NULL指针的使用2.2 越界访问2.3 对非动态开辟的空间进行释放2.4 对动态开辟的空间重复释放2.5 释放部分动态开辟的空间2.6 忘记释放动态开辟的内存空间3 柔性数组1 动态内存分配…

作者头像 李华