摸了好久,终于把linux中i2c的ioctl,write,read函数的使用弄懂了

2023-11-01

ioctl函数的使用:
原型:struct ioctl(struct file *file,unsigned int cmd,unsigned long arg);
 cmd有I2C_SLAVE,I2C_SLAVE_FORCE,I2C_TENBIT,I2C_S3C2410_SET_SPEED几个选项;
    I2C_SLAVE:对应的arg取值为I2C从机地址,用来设定I2C从机地址;

    I2C_SLAVE_FORCE:对应的arg取值为I2C从机地址,用来修改I2C从机地址;

    I2C_TENBIT:对应的arg取值为0:从机地址为7 bit;对应的arg取值为1:从机地址为10bit。用来指定I2C从机地址的位数;  

    I2C_S3C2410_SET_SPEED:对应的arg取值为I2C总线控制器分频值。用来设置I2C总线控制器时钟频率;
 

    常用设置设置I2c从机地址为0xA0,如果选用at24c08设备,那么从机是7 bit地址,所以要右移1位,指定从机地址为7 bit,

ioctl(fd,I2C_TENBIT,0)。
ioctl(fd,I2C_SLAVE,0xA0>>1);

 

read()与write()函数的使用
  假设子地址为12,向有子地址的器件写进7个字节:

unsigned char buf[8]={12,'s','j','s','u','n','n','y');/*第1个字节12为子地址*/write(fd,buf,9);/*写进7个字节,第1个字节为子地址*/

从有子地址的I2C器件读取7个字节:
  unsigned char suba=0;recbuf[20];
  write(fd,buf,1);/*发送子地址0*/
  read(fd,recbuf,7);/*从子地址12开始读取7个字节*/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

摸了好久,终于把linux中i2c的ioctl,write,read函数的使用弄懂了 的相关文章

  • C 中的分段错误

    我需要用 0 填充二维数组 但编译后的程序会出现此错误 怎么了 int main int vert 1001 1001 int hor 1001 1001 int dudiag 1416 1416 int uddiag 1416 1416
  • 当“”可以分配给std::string时,为什么有“clear”方法?

    一个可以用string clear函数清空字符串 也可以使用空双引号 来执行此操作 有什么不同 当您分配一个空字符串时 编译器必须在数据部分存储一个空的 C 字符串 并创建代码以将指向它的指针传递给赋值运算符 然后 赋值运算符必须从数据部分
  • 对相当大的整数的大集合的操作的快速实现

    描述 我实现了以下类 LabSetInt64 参见下面的代码 这里的目标是尽可能快地操作大量大整数 最多 10M 的值 我的主要要求集中在 至关重要 尽快获取集合的大小 基数 重要 能够非常快速地迭代一组集合 所以 从下面的实现开始 我还有
  • NUnit 测试运行顺序

    默认情况下 nunit 测试按字母顺序运行 有谁知道有什么方法可以设置执行顺序吗 是否存在这样的属性 我只是想指出 虽然大多数受访者认为这些是单元测试 但问题并没有具体说明它们是 nUnit 是一个很棒的工具 可用于各种测试情况 我可以看到
  • 错误 C2064:术语不计算为采用 1 个参数的函数

    class Student bool Graduate return m bGraduate class School vector
  • 按位非运算符

    为什么要按位运算 0 打印 1 在二进制中 不是0应该是1 为什么 你实际上很接近 在二进制中 不是0应该是1 是的 当我们谈论一位时 这是绝对正确的 然而 一个int其值为0的实际上是32位全零 将所有 32 个 0 反转为 32 个 1
  • 有哪些 API 可在 Windows 中使用 C# 配置扬声器设置?

    我环顾了很多不同的地方 但似乎找不到一个简单的方法来做到这一点 我在 Windows 7 中有多个声卡 并使用 HDMI 将声音输出到我的 AVR 放大器 我遇到的问题是 当放大器关闭时 它会导致窗口丢失扬声器配置 所以我想做的是编写一个小
  • 整数与双精度算术性能?

    我正在编写一个 C 类来使用整数执行 2D 可分离卷积 以获得比双对应更好的性能 问题是我没有获得真正的性能提升 这是 X 过滤器代码 对于 int 和 double 情况都有效 foreach pixel int value 0 for
  • 最小对的总和

    Given 2N点 in a 2D plane 你必须将它们分组为N pairs使得所有对的点之间的距离的总和是最小可能值 所需的输出只是总和 换句话说 如果a1 a2 an分别是第一对 第二对 和第 n 对点之间的距离 则 a1 a2 a
  • 适用于 Windows 的键值数据库?

    除了 MongoDB 和 Memcached 之外 Windows 上还运行哪些键值存储 我见过的大多数似乎只能在 Linux 上运行 Hypertable Redis Lightcloud 相关链接 是否有经过商业验证的云存储 Key g
  • 如何从 Emacs 中检出 Perforce 下的文件?

    我在工作中使用 Perforce 进行源代码控制 并且希望从 Emacs 中 打开以进行编辑 源代码控制下的文件 那怎么办呢 我需要在 Emacs 中设置什么 有插件吗 我还想执行其他 p4 操作 例如提交我的更改等 Perforce Em
  • 一个对大文件有效的轻量级 XML 解析器?

    我需要解析潜在的巨大 XML 文件 所以我猜这排除了 DOM 解析器 是否有任何优秀的 C 轻量级 SAX 解析器 在占用空间上可与 TinyXML 相媲美 XML的结构非常简单 不需要诸如命名空间和DTD之类的高级东西 只是元素 属性和
  • Global.asax 错误处理程序或自定义 IHttpModule 错误处理程序未捕获未处理的异常

    我有一个类 DPCal EventMove 的一种方法 我想限制使用角色的访问 我有一个 Global asax cs 错误处理程序和一个自定义 IHttpModule 错误处理程序 旨在捕获未处理的异常 并将它们 Server Trans
  • 检测用户是否正在滚动 dataGridView 滚动条

    我正在更新一个dataGridView与一个新的数据表使用 dataGridView1 DataSource table 但是 我不想在用户滚动 dataGridView 时执行此操作 如何检查滚动条是否正在滚动或已完成滚动 即拖动而不是单
  • 即使对于新上下文,OnModelCreating 也仅调用一次

    我有多个相同但内容不同的 SQL Server 表 在编写代码优先 EF6 程序时 我尝试为每个程序重用相同的数据库上下文 并将表名称传递给上下文构造函数 然而 虽然每次都会调用构造函数 但尽管每次都是从 new 创建数据库上下文 但 On
  • 字符串常量之前应有非限定 ID

    我目前正在编写一个 C 应用程序 它与 math h 结合实现了振荡器 我拥有的代码应该可以很好地用于该应用程序 尝试编译目标文件 但是我遇到编译器错误 很可能与语法 等有关 我认为这与命名空间有关 错误 终端输出 User Name Ma
  • 为什么 32 位 .NET 进程的引用类型的最小大小为 12 字节

    我正在读专业 Net 性能 https rads stackoverflow com amzn click com 1430244585本书有关参考类型内部结构的部分 它提到 对于 32 位 net 进程 引用类型具有 4 字节的对象头和
  • 如何使用字符串的值将字符串转换为 wstring?

    我是 C 新手 我有这个问题 我有一个名为 DATA DIR 的字符串 需要将其格式化为 wstring string str DATA DIR std wstring temp L s str Visual Studio 告诉我没有与参数
  • 文件构造函数说明

    我无法理解以下文件构造函数 public File String parent String child and public File File parent String child 参数有什么作用parent and child该文件
  • “保留供任何使用”是什么意思?

    注意 这是一个c questions tagged c问题 虽然我补充说c questions tagged c 2b 2b如果某些 C 专家可以提供 C 使用与 C 不同的措辞的基本原理或历史原因 在 C 标准库规范中 我们有这个规范文本

随机推荐

  • 支付宝网页支付交互流程 nest 版

    自己整理了一份支付宝网页支付的交互流程 完全按交互流程响应步骤介绍的代码 效果图 因为平时主要用node开发 所以服务端用的node 框架是 nest 用最精简的代码实现支付功能 1 流程图 为了让下面的交互流程更清楚点 做了一张 简单粗暴
  • ESP32 CAM学习记录 (1) ——安装开发环境及烧录固件至ESP32-CAM开发板(虚拟机开发篇)

    本次开发使用安信可官方提供的开发环境 直接在windows下用虚拟机进行开发 1 搭建开发环境 开发环境连接 https pan baidu com s 1hWJAfeDQbYiD01X6eyqgMw 用 vmware12打开虚拟机 导入安
  • 自然语言处理入门指北 之 one-hot

    自然语言 Natural Language 通常是指一种自然地随文化演化的语言 例如 汉语 英语 日语都是自然语言的例子 与编程语言等为计算机而设的 人造 语言相对 自然语言无法直接被计算机等 理解 在这个前提下 如何让计算机认识 学习乃至
  • vue 的 el-table-infinite-scroll下拉加载

    使用el table infinite scroll 插件 安装插件 npm install save el table infinite scroll 全局引入并注册 main js import elTableInfiniteScrol
  • python基础:字典常用函数和方法

    字典 dictionary dict 字典的每个元素都是由一个key和一个value组成的 键 值 键是唯一的 且键是不可变数据类型 值是可以任意的 数据类型任意 且值可以重复 创建一个字典 dic aa aa的值 bb bb的值 cc c
  • Macbook M1和M2芯片安装Miniconda3、添加镜像和R的安装(超详细,解决PackagesNotFoundError,CondaSSLError: 报错问题)

    0 前言 前段时间由win换了Mac电脑 成功安装了一堆win上的软件 PS AI Office等等 因为之前win11上一直用的wsl2并装了miniconda3 体验感也是不错 就想着苹果电脑自家内置shell应该装个miniconda
  • 大脑视觉信号被Stable Diffusion复现图像!“人类的谋略和谎言不存在了”

    丰色 萧箫 发自 凹非寺量子位 公众号 QbitAI 现在Stable Diffusion已经能重建大脑视觉信号了 就在昨晚 一个听起来细思极恐的 AI读脑术 研究 在网上掀起轩然大波 这项研究声称 只需用fMRI 功能磁共振成像技术 相比
  • 华为OD真题2023新题库(机试通知上写着--A卷2022Q4)

    华为od最近又开始招人了 对于目前市场上行情来看 虽然去od加班可能多 但工资还是可以的 大环境不好都开始卷了 od对于目标院校机试成绩比较低150分 2023年好像又涨了 其他非目标院校350 wx外包300 当你收到邮件 试卷名称 A卷
  • 移动端UI兼容性测试利器-Hydra

    导读 尽管自动化测试技术日新月异 但是自动化case构建成本 执行稳定性等问题的存在 使手工测试依然移动端质量保证的重要手段 传统手工测试必须通过人工操作的方式执行测试用例 效率提升依赖测试人员的操作熟练度 本文从介绍百度内UI兼容性测试现
  • linux系统下nginx的安装

    文章目录 一 安装nginx依赖 二 下载并解压nginx安装包 三 安装nginx 四 配置环境变量 五 启动 六 浏览器访问 七 停止重启nginx 八 设置开机自启动nginx 九 防火墙设置 十 卸载nginx 一 安装nginx依
  • Quartz的12张数据库表说明

    参考地址 https www e learn cn en share 3471635 https blog csdn net xiaoniu 888 article details 83181078 表说明 1 1 qrtz blob tr
  • YOLOv5的介绍

    YOLOv5 You Only Look Once version 5 是一种目标检测模型 用于在视频或图像中识别和定位物体 它是YOLO You Only Look Once 算法的最新版本 在YOLOv4的基础上进行了改进 YOLOv5
  • java的几种基本数据类型及其大小

    Java中的四类八种基本数据类型 第一类 整数类型 byte short int long 第二类 浮点型 float double 第三类 逻辑型 boolean 它只有两个值可取true false 第四类 字符型 char 按照字节排
  • 《Python入门到精通》time模块详解,Python time标准库,time库函数大全

    作者主页 士别三日wyx 作者简介 CSDN top100 阿里云博客专家 华为云享专家 网络安全领域优质创作者 推荐专栏 小白零基础 Python入门到精通 time模块详解 1 获取操作 time time 获取时间戳 float ti
  • ionic android app打包和发布

    1 项目信息 angular 10 0 14 ionic 5 4 3 gradel 6 5 cordova 10 0 0 node 12 14 0 visual studio code 1 68 1 项目代码 http 192 168 1
  • Unity2D Mesh水

    学生一枚 买不起pro 也懒得破解 不能用unity自带的water组件做水 所以用LineRenderer Mesh Sin函数苟了一个 为什么不用shader做 因为用Mesh的方法更容易添加碰撞 浮力组件 表面效应组件的效果 用sha
  • Spring-全面详解(学习总结)

    Spring 1 简介 1 1 简介 简介 Spring 春天 gt 给软件行业带来了春天 2002年 Rod Jahnson首次推出了Spring框架雏形interface21框架 2004年3月24日 Spring框架以interfac
  • 2022FPGA创新设计竞赛选题分析与建议——写给大一大二学弟学妹

    0 写在最前 老师新带了几个大一大二的同学准备参加FPGA创新设计竞赛 他们不具备太多的参赛经验 往往专业知识也没有学太多 有一颗想参赛的心 却又茫然不知所措 因此 此文希望对于大一大二的科创萌新有所帮助 1 关于选题 1 1 选题分析 2
  • [网络工程师]-网络规划与设计-网络测试运行和维护(二)

    4 局域网测试 局域网测试主要是检验网络是否为应用系统提供了稳定 高效的网络平台 如果网络系统不够稳定 网络应用就不可能快速稳定 对于常规的以太网进行系统测试 主要包括系统连通性 链路传输速率 吞吐率 传输时延 丢包率及链路层健康状况测试等
  • 摸了好久,终于把linux中i2c的ioctl,write,read函数的使用弄懂了

    ioctl函数的使用 原型 struct ioctl struct file file unsigned int cmd unsigned long arg cmd有I2C SLAVE I2C SLAVE FORCE I2C TENBIT