Linux内核的I2C读写寄存器

在日常I2C设备驱动开发过程,经常要对设备进行一些简单寄存器读写,可以利用以下函数进行封装

I2C读

u8 addr_buf[2] = { (addr >> 8) & 0xFF, addr & 0xFF };
u8 data[2];
struct i2c_msg msgs[2] = {
    {
     .addr =client->addr, //从设备I2C地址
     .flags = 0,          //写标志位
     .buf = addr_buf,     //要写内容数组地址
     .len = 2             //数组长度
     },
        {
             .addr = client->addr,
             .flags = I2C_M_RD,//读标志位
             .len = 2,         //读长度
             .buf = data,//保存数据buffer
        }
};
ret = i2c_transfer(client->adapter, msgs, 2);
if (ret != 2) {
        return ERROR_IIC;
}

addr_buf的长度可以根据IC 数据手册获取的,可以是8bit 也可以16bit,读入的长度data,一般与I2C内部寄存器长度一致。

I2C写

u8 addr_buf[4] = { (addr >
【裸机开发】I2C 通信接口(二)—— I2C 寄存器解析 阅读详情

相关推荐

i2c设备寄存器读写操作

最后,代码调用了i2c_transfer函数,将msg消息发送到I2C总线上。主要目的是通过I2C适配器将一个消息发送到I2C总线上,以便与指定的I2C设备进行通信。参数1表示要发送的消息数量。总体上,这段代码通过I2C适配器向指定的I2C设备发送一个字节的数据(0x53),并尝试从该设备读取一个字节的数据。然后,定义了一个i2c_msg结构体变量msg,这个结构体用于表示一个I2C消息。: 设置消息的目标地址,即要与之通信的I2C设备的地址。: 定义一个i2c_msg结构体变量,用于表示一个I2C消息。

nihaoma95278的博客 7523

深入解析I2C设备寄存器读写操作:从基础到实践

本文深入解析了I2C设备寄存器读写操作的核心原理与实践方法。通过将I2C通信类比为电话系统,详细剖析了i2c_transfer函数的关键参数与消息构建艺术,并提供了单字节/多字节寄存器读写、错误排查及内核便捷函数等实战代码与高级技巧,旨在帮助开发者编写稳定可靠的I2C驱动。

weixin_29189373的博客 296

Linux环境下编程读写I2C芯片寄存器

在Linux操作系统中,我们可以通过编写代码来读取和写入连接到I2C总线上的芯片的寄存器。本文将详细介绍在Linux环境下使用C语言编程读写I2C芯片寄存器的过程,并提供相应的源代码。以上就是在Linux环境下编程读写I2C芯片寄存器的基本步骤。请根据实际情况修改代码中的设备文件和设备地址,并确保正确配置了I2C总线和相关的驱动程序。在实际使用时,请根据你的系统配置和I2C设备的实际情况进行相应的修改。在开始编程之前,确保你的Linux系统已经正确配置了I2C总线和相关的驱动程序。

2301_79326559的博客 781

ROST_CM6软件之词频分析、社会网络和语义网络分析、情感分析

简介 ROST CM 6是武汉大学沈阳教授研发编码的国内目前唯一的以辅助人文社会科学研究的大型免费社会计算平台。该软件可以实现微博分析、聊天分析、全网分析、网站分析、浏览分析、分词、词频统计、英文词频统计、流量分析、聚类分析等一系列文本分析。 社会网络和语义网络分析(S) 数据 注意,保存时编码要为ANSI 所以这里需要转换一下 准备自定义表与停词表 例如 同时,点击快速分析后,将会弹出网络图 对网络图进行设置 对布局进行设置 对节点、边进行设置 最终效果图 修改 情感分析

积一时之步,臻千里之遥程 9万+

【AI Agent 实战】OpenClaw 全面解析 + 全平台一键部署教程(本地 AI 智能体)

本文收录于 AI 智能体 & 自动化实战系列,手把手带你从零部署本地可控的 AI 执行助手关键词:OpenClaw、AI Agent、本地 AI 部署、自动化助手、Docker 部署

爱人爱己,风生水起 7879

USB-C快充协议分析仪:QC/PD双协议识别与功率监测设计

USB-C快充协议是现代移动设备能量传输的核心技术标准,其本质是通过物理层电压特征(如DP/DM组合、CC线BMC编码)实现动态电压协商。理解协议握手原理对充电器研发、兼容性测试及故障诊断至关重要。本方案聚焦受电端(Sink)视角,基于FUSB302B与高阻抗DP/DM采样电路,实现QC2.0/QC3.0/QC4+与PD2.0/PD3.0的实时识别与状态机解析;结合INA219高精度电流检测与μs级同步采样,达成±0.06%功率测量精度。典型应用于快充芯片验证、产线协议一致性测试及第三方评测,为USB供电系

weixin_42153793的博客 245

AI系统架构原理与代码实战案例讲解

人工智能的概念可以追溯到上世纪50年代,图灵测试的提出标志着人工智能作为一门学科的诞生。早期的研究主要集中在符号推理、专家系统等领域,取得了一些突破,例如机器定理证明、西洋跳棋程序等。上世纪80年代,随着专家系统的兴起,人工智能进入了一个黄金时期。专家系统通过模拟人类专家的知识和经验进行推理和决策,在医疗诊断、故障诊断等领域取得了成功应用。进入90年代,由于计算能力的限制和数据量的不足,人工智能的发展陷入低谷。近年来,随着深度学习技术的突破、大数据的兴起以及计算能力的提升,人工智能迎来了第三次发展浪潮,在图

AI天才研究院 1794

电源芯片MPQ3431A

MPQ3431A是一款具有宽输入范围的固定频率为450kHz的高度集成的升压转换器,其输入电压低至2.7V,采用恒定关断时间(COT)的控制拓扑,可提供快速的瞬态响应。芯片支持通过MODE管脚配置PSM(pulse-skip mode)、FCCM(forced continuous conduction mode)和USM(ultrasonic mode);还支持通过电流限制配置来达到精确的过流保护;同时芯片欠压保护(UVLO)和过温保护(OTP)。MPQ3431A采用QFN-13(3mmx4mm)封装。保

qflook的博客 1559

从 VS Code 登录 ABAP Destination,一次把前后端连接跑通

最近很多 ABAP 开发者开始把 VS Code 纳入日常开发环境,原因很直接,VS Code 的轻量体验、命令面板、文件树、插件生态和 AI 编程能力,已经深深影响了现代开发者的工作方式。SAP 官方发布的 ABAP Development Tools for VS Code,也把 ABAP Cloud 开发模型带进了这个编辑器里。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 226

Unreal5.6从入门到精通之 如何实现MetaHuman数字人

本文介绍了使用HYPER3D-ChatAvatar网站生成3D头部模型,并导入Unreal Engine制作数字人的完整流程。首先上传照片生成头部模型(约2分钟),设置参数后下载模型文件。然后在UE5.6中创建项目,激活MetaHuman插件,导入头部模型并调整肤色、面部特征和身体模板。通过MetaHuman Creator组装数字人蓝图,支持添加音频/视频动画功能。关键步骤包括:取消Rigging选项节省时间、切换英文模式避免材质问题、使用Live Link Face应用实现面部捕捉等。整个流程约需5-1

TxNet 1347

【原理图PCB专题】Cadence 17.4版本导出excel版本坐标文件

Cadence 17.4版本导出坐标文件往往都是txt格式,并且无标题、导出时间、导出设计工程多名称等信息。那么怎么样才能导出有带这些信息的excel版本并格式好看的坐标文件呢?

一点硬件 2763

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: 信息系统密码应用技术框架
下一篇: openSSL 3des的加密解密过程
WythePlus
博客等级 码龄11年 397粉丝 300原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值