linux的系统

10.4 I2C 系统的重要结构体 参考资料: ⚫ Linux 驱动程序:(某版本的 Linux,比如 Linux-4.9.88)/drivers/i2c ⚫ I2CTools: https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/ 284 / 577 10.4.1 重要结构体 使用一句话概括 I2C 传输:APP 通过 I2C Controller 与 I2C Device 传 输数据。 在 Linux 中要思索下面几个问题。 ⚫ 怎么表示 I2C Controller ⚫ 一个芯片里可能有多个 I2C Controller,比如第 0 个、第 1 个、…… ⚫ 对于使用者,只要确定是第几个 I2C Controller 即可 ⚫ 使用 i2c_adapter 表示一个 I2C BUS,或称为 I2C Controller,里面有 2 个重要的成员: a) nr:第几个 I2C BUS(I2C Controller) b) i2c_algorithm,里面有该 I2C BUS 的传输函数,用来收发 I2C 数据 i2c_adapter 原型: 图 10.27 i2c_adapter 原型 i2c_algorithm 原型: 图 10.28 i2c_algorithm 原型 285 / 577 怎么表示 I2C Device ⚫ 一个 I2C Device,一定有设备地址 ⚫ 它连接在哪个 I2C Controller 上,即对应的 i2c_adapter 是什么 使用 i2c_client 来表示一个 I2C Device 图 10.29 i2c_client 怎么表示要传输的数据 在上面的i2c_algorithm结构体中可以看到要传输的数据被称为:i2c_msg i2c_msg 原型: 图 10.30 i2c_msg ◼ i2c_msg 中的 flags 用来表示传输方向:bit 0 等于 I2C_M_RD 表示 读,bit 0 等于 0 表示写 ◼ 一个 i2c_msg 要么是读,要么是写 286 / 577 举例:设备地址为 0x50 的 EEPROM,要读取它里面存储地址为 0x10 的一个字节, 应该构造几个 i2c_msg?要构造 2 个 i2c_msg c) 第一个 i2c_msg 表示写操作,把要访问的存储地址 0x10 发给设备 d) 第二个 i2c_msg 表示读操作 代码如下 u8 data_addr = 0x10; i8 data; struct i2c_msg msgs[2]; msgs[0].addr = 0x50; msgs[0].flags = 0; msgs[0].len = 1; msgs[0].buf = &data_addr; msgs[1].addr = 0x50; msgs[1].flags = I2C_M_RD; msgs[1].len = 1; msgs[1].buf = &data; 10.4.2 内核里怎么传输数据

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

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

相关文章

母婴团队半年破亿秘诀揭秘,合规经营成就辉煌

这支母婴产品销售团队在短短半年内实现了过亿的销售额,这是一个令人瞩目的成就。他们既不依赖线下门店,也不是传统的电商平台,那么他们是如何做到这一点的呢? 这个团队从16年10月开始经营母婴产品,如今已经过去了6年时…

生成式AI:SEO的末日?

由于在搜索结果中引入生成式AI (GAI),以 SEO 为主导的内容的未来成为最近的热门话题,这是有充分理由的。 对于出版商和网站所有者(从现在开始我们将他们称为内容创建者)的影响可能是毁灭性的。 如下图所示,谷歌新的搜…

成为AI产品经理——模型构建过程(上)

目录 一、背景 1.对内 2.对外 二、模型构建过程 1.模型设计 2.特征工程 ① 数据清洗 ② 特征提取 数值型数据 标签/描述类数据特征 非结构化数据(处理文本特征) 网络关系型数据 ③ 特征选择 ④ 训练集/测试集 一、背景 虽然产品经理不…

Linux应用开发基础知识——I2C应用编程(十二)

前言: I2C(Inter-Integrated Circuit BUS)是集成电路总线,是目前应用最广泛的总线之一,最初由PHILIPS(现为NXP)设计。它使用多主从架构,主要用于连接低速周边设备。I2C总线在硬件物理…

WorkPlus即时通讯,打通上下游产业链,构建企业生态圈

如今,随着信息技术的迅速发展,智慧水务、智慧医疗、智慧城市、智慧教育、智慧政务等领域正蓬勃发展。在这个智慧时代,企业需要一个具备开放性和扩展性的平台级产品,以满足多样化的业务需求。WorkPlus作为一款全新的移动底座产品&a…

String 真的不可变吗?

为什么 String 类不可变 final修饰符: String类被声明为final,这意味着它不能被继承。因此,无法创建String的子类来修改其行为。私有字符数组(char[]): String类内部使用私有的字符数组来存储字符串的内容…

Excel文件比较不再繁琐,xlCompare助您快速找出差异

概要 在现代职场中,Excel 已成为工作中不可或缺的利器。 在日常操作中,我们会遇到需要对两个或多个 Excel 文件进行比较的情况,此时,一款高效的 Excel 文件比较工具就显得尤为重要。 本文将为您介绍一款功能强大、优势明显的 Exc…

创新建筑形式:气膜体育馆助力校园体育设施革新

体育场馆在校园中扮演着重要的角色,是学生们进行体育锻炼、比赛和各类体育活动的场所。传统的室内体育馆建设往往需要大量资金和漫长的建设周期,但随着气膜体育馆的崭露头角,校园体育设施的面貌正迎来一场革新。 快速搭建,灵活性极…

电机应用开发-直流有刷电机电流环控制实现

目录 直流有刷电机电流环控制实现 硬件设计 直流电机电流环控制-位置式PID实现 编程要点 配置ADC可读取电流值 配置基本定时器6产生定时中断读取当前电路中驱动电机的电流值并执行PID运算 配置定时器1输出PWM控制电机 ADC数据处理 编写位置式PID算法 直流电机电流环控…

3、领导跟你谈话,讲到你的团队里面的好友,公司会进行观察裁员,你会去传话么?

作为一个团队成员,我会认真听取领导的意见,并尊重公司的决定。然而,作为一个好友,我也会考虑他们的利益,我会与他们沟通,提醒他们注意自己的表现和工作,努力提高业绩和工作质量,以确…

5个免费在线工具推荐

NSDT 三维场景建模工具GLTF/GLB在线编辑器Three.js AI自动纹理化开发包YOLO 虚幻合成数据生成器3D模型在线转换 1、NSDT 三维场景建模 访问地址:NSDT 编辑器 2、GLTF/GLB在线编辑器 访问地址:GLTF 编辑器 3、Three.js AI自动纹理化开发包 图一为原始模…

Linux下安装两个版本python

1 python下载: 官网地址:Download Python | Python.org 第一:点击下载如下图: 第二:找到对应的python版本源码包: 点击右键复制下载地址,如下图 例如我的是:https://www.python.org/…

【鸿蒙应用ArkTS开发系列】- 云开发入门实战二 实现省市地区联动地址选择器组件(上)

目录 概述 云数据库开发 一、创建云数据库的对象类型。 二、预置数据(为对象类型添加数据条目)。 三、部署云数据库 云函数实现业务逻辑 一、创建云函数 二、云函数目录讲解 三、创建resources目录 四、获取云端凭据 五、导出之前创建的元数据…

企业如何通过软文推广提高竞争力

数字时代我们每天接收到的信息远远超过可接受的量,且技术进步带来的“信息茧房”使用户很难获取真正有效的信息,但越是杂乱的信息环境,有价值信息的穿透力就越强,软文推广正是凭借价值感信息助力企业提高竞争力,接下来…

RabbitMQ快速学习之WorkQueues模型、三种交换机、消息转换器(SpringBoot整合)

文章目录 前言一、WorkQueues模型消息发送消息接收能者多劳 二、交换机类型1.Fanout交换机消息发送消息接收 2.Direct交换机消息接收消息发送 3.Topic交换机消息发送消息接收 三、编程式声明队列和交换机fanout示例direct示例基于注解 四、消息转换器总结 前言 WorkQueues模型…

C plus plus

环境配置 vscodewindows vscode c 环境配置(终极版)_vscode配置c/c环境_BangBang的博客-CSDN博客VsCode安装和配置C环境详细全流程_vscode安装c-CSDN博客MinGW、MinGW-w64 与TDM-GCC 应该如何选择? - 知乎、VsCode安装和配置C环境详细全流程_vscode安装c-CSDN博客 …

​LeetCode解法汇总5-正则表达式匹配​

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 描述: 「HTML 实…

Educoder中Hive综合应用案例——用户学历查询

第1关:查询每一个用户从出生到现在的总天数 ---------- 禁止修改 ----------drop database if exists mydb cascade; ---------- 禁止修改 -------------------- begin ---------- ---创建mydb数据库 create database mydb;---使用mydb数据库 use mydb;---创建表user create …

电脑找不到xinput1_3.dll怎么修复,快速处理dll问题的5个方法分享

在使用电脑的过程中,我们常常会遇到一些常见的问题,其中之一就是“电脑缺少xinput1_3.dll”。这个问题可能会影响到我们对电脑的使用体验,甚至导致某些软件无法正常运行。在我遇到这个问题并解决之后,我深刻地体会到了解决问题的重…

迅镭激光板材切割自动化生产线中标高端机械装备龙头豪迈集团!

近年来,中国制造业逐步由低端制造业向高端制造业迈进、由劳动密集型向技术密集型转变,智能制造带动了制造业生产环节的自动化、信息化、数字化、智能化的迭代升级。 位于山东省的高端机械装备龙头——豪迈集团,紧跟国家发展战略,加…