linux下I2C驱动发送IO时序,Linux I2C 驱动阅读的碰到的一些网上没有提到的东西

# re: Linux I2C 驱动阅读的碰到的一些网上没有提到的东西  回复  更多评论

2009-04-11 13:39 by 初学都

楼主,你好。我看了你那篇《Linux I2C核心、总线与设备驱动[转]》,让我明白了不少,不过我还是有些不明白的地方,想请教一下。

我挂的I2C设备是只可以写的,不能读,所以只有一个写从机地址,可是当我调用内核的I2C驱动时发现,写操作执行后,在示波器上看到,在开始信号之后,它先发送完从机地址并接收到应答信号,可之后立即出现了一个停止信号(我后面还有数据要发的呀),然后又开始发送从机地址,并在收到应答后又出现一个停止位,如此反复;

在我下面的程序运行时,只在示波器上抓到四组这样“开始—从机地址—应答—停止”的信号,却没有看到我接下来要发数据,同时还打印出“Remote I/O error”的错误,我先把我的程序贴一下,希望能得到你的指点,谢谢

#define I2C_TENBIT 0x704

#define I2C_SLAVE 0x703

#define CHIP_ADDR 0x30 >> 1 // 7 bits for fm31256 address

#define IO_DEV "/dev/i2c-0"

main(int argc, char *argv[])

{

unsigned char REG_WRITE=0X30; /*写地址*/

unsigned char data=0xf4;

int ret;

ret=0;

if ((fd = open(IO_DEV, O_RDWR)) < 0)

perror("open i2c_adpter error");

else //设置I2C访问模式

{

if(ioctl(fd,I2C_TENBIT,0))

perror("set i2c 7bits address mode error");

if(ioctl(fd,I2C_SLAVE,CHIP_ADDR))

perror("set device address error");

}

if((ret = write (fd, REG_WRITE, 1))!= 1)//发从机地址

{

perror("set address error"); //这里打印Remote I/O error

}

else

{

if (write (fd, &data, 1))!= 1)//发送数据,但在示波器上没有 看到date的值

perror("write date error"); //这里打印Remote I/O error

}

return 0;

}

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

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

相关文章

Java内存模型和优化

总览 许多多线程代码开发人员都熟悉这样的想法&#xff0c;即不同的线程可以对持有的值有不同的看法&#xff0c;这不是唯一的原因&#xff0c;即如果线程不安全&#xff0c;它可能不会看到更改。 JIT本身可以发挥作用。 为什么不同的线程看到不同的值&#xff1f; 当您有多个…

C_数组详解

数组&#xff1a; 一 一维数组 1.1 一维数组的定义: 类型符 数组名[常量表达式]; int a[10]; 说明: 1.数组的命名规则遵循标识符命名规则。 2.定义时需要指定元素的个数。方括号里的常量表达式表示元素的个数。 3.常量表达式中不能包含变量&#xff1b;如&#xff1a;int a[n];…

CSS节选——选择器

CSS&#xff0c;cascading style sheet&#xff0c;层叠样式表&#xff0c;请留意层叠概念。 css3为了区分伪类和伪元素&#xff0c;伪元素采用双冒号写法。 常见伪类——:hover,:link,:active,:target,:not(),:focus。 常见伪元素——::first-letter,::first-line,::before…

python游戏循环设置_Pygame:游戏循环前的初始菜单

我正在制作一个this game的版本&#xff0c;并尝试将起始菜单设置为&#xff1a;我的计划是先做surface.fill(overlaycolor)&#xff0c;然后将这个图像blitting到屏幕上。在一个while循环中。之后&#xff0c;在用户想玩(另一个问题除外)之后&#xff0c;我们将进入另一个whil…

vue.js基础知识篇(7):表单校验详解

目录 网盘 第12章:表单校验 1.npm安装vue-validator $ npm install vue-validator 代码示例: var Vuerequire("vue"); var VueValidatorrequire("vue-validator"); Vue.use(VueValidator); 2.直接使用script标签引入vue.js 要下载vue-validator&#xff0c…

修改linux绑定的域名,手工修改linux系统下DA面板绑定的域名

举例说明手工修改DA面板下虚拟主机ryan绑定的域名&#xff0c;只需要 vi /usr/local/directadmin/data/users/ryan/httpd.conf代码如下&#xff1a;# Auto generated apache config file by DirectAdmin version 1.46.3# Modifying this file is not recommended as any change…

在JUnit测试中使用Builder模式

这并不是要成为技术含量很高的职位。 这篇文章的目的是为您提供一些指导&#xff0c;以使您的JUnit测试生活更加轻松&#xff0c;使您能够在几分钟内编写复杂的测试场景&#xff0c;并具有易于阅读的测试优势。 单元测试中有两个主要部分&#xff0c;需要编写许多引导程序代码&…

SQL数据库中临时表、临时变量和WITH AS关键词创建“临时表”的区别

原文链接&#xff1a;https://www.cnblogs.com/zhaowei303/articles/4204805.html SQL数据库中数据处理时&#xff0c;有时候需要建立临时表&#xff0c;将查询后的结果集放到临时表中&#xff0c;然后在针对这个数据进行操作。 创建“临时表”&#xff08;逻辑上的临时表&…

python 三维绘图库_Python第三方库matplotlib(2D绘图库)入门与进阶

Matplotlib一 简介&#xff1a;Matplotlib是一个Python 2D绘图库&#xff0c;它可以在各种平台上以各种硬拷贝格式和交互式环境生成出具有出版品质的图形。 Matplotlib可用于Python脚本&#xff0c;Python和IPython shell&#xff0c;Jupyter笔记本&#xff0c;Web应用程序服务…

zbb20170626 myeclipse 2017 ci 构建 spring hibernate struts jar

转载于:https://www.cnblogs.com/super-admin/p/7081209.html

linux处理机调度实验报告,模拟Linux操作系统下处理机调度实验报告

在采用多道系统的设计程序中,往往有若干进程同时处于就绪状态。当就绪状态进程数大于处理机数时,就必须按照某种策略来决定哪些进程优先占用处理机。本实验模拟在单处理机情况下处理机调度处理机调度一、实验目的&#xff1a;1、了解Linux下Emacs编辑器的使用方法&#xff0c;掌…

Java线程:保留的内存分析

本文将为您提供一个教程&#xff0c;使您可以确定活动应用程序Java线程保留Java堆空间的数量和位置。 将提供来自Oracle Weblogic 10.0生产环境的真实案例研究&#xff0c;以使您更好地理解分析过程。 我们还将尝试证明过多的垃圾回收或Java堆空间的内存占用问题通常不是由真正…

软件测试白皮书-等价类

设有一个档案管理系统&#xff0c;要求用户输入以年月表示的日期。假设日期限定在1990年1月~2049年12月&#xff0c;并规定日期由6位数字字符组成&#xff0c;前4位表示年&#xff0c;后2位表示月。现用等价类划分法设计测试用例&#xff0c;来测试程序的"日期检查功能&qu…

深入css布局 (1) — 盒模型 元素分类

深入css布局&#xff08;1&#xff09;—— 盒模型 & 元素分类 “ 在css知识体系中&#xff0c;除了css选择器&#xff0c;样式属性等基础知识外&#xff0c;css布局相关的知识才是css比较核心和重要的点。今天我们来深入学习一下css布局相关的知识。” 首先来列下大纲 盒模…

批改网禁止粘贴怎么破_教育部对家长批改作业表态了,明令禁止!你怎么看?...

互联网的发展&#xff0c;的确方便了现代人生活。视频电话、出去买东西你都不用带钱带卡&#xff0c;手机一扫就可以完成支付。很多中小学的家长都会建一个家长群&#xff0c;方便老师和家长的沟通。这个群可以说是家长和学校的桥梁和纽带&#xff0c;家长们为了支持老师的工作…

电子科大专科c语言作业1,电子科大15春《C语言(专科)》在线作业试卷.docx

电子科大 15 春《 C 语言(专科)》在线作业一、单选题(共20 道试题&#xff0c;共100 分。)1.对于 int*p;inta[];pa;的合法运算 ()a;pa;p; 相当于 a;p; 相当于 a[1];若 p 中的地址为 100 则 p; 运算后&#xff0c;则其值为 100-----------------选择&#xff1a; C已知 intb; 则…

MapReduce算法–顺序反转

这篇文章是介绍MapReduce算法的系列文章的另一部分&#xff0c;该书在使用MapReduce进行数据密集型文本处理中找到。 先前的文章是Local Aggregation &#xff0c; Local Aggregation PartII和创建共现矩阵 。 这次我们将讨论阶数反转模式。 顺序反转模式利用的MapReduce来计算…

xss防御

http://blog.csdn.net/ghsau/article/details/17027893转载于:https://www.cnblogs.com/jiangjing/p/8076216.html

移动端页面字体在微信被放大,导致排版错乱

在开发微信页面的时候&#xff0c;之前一直没有测出这个问题。直到某天领导的手机出现了排版错位的问题&#xff0c;拿着手机质问我的工作态度。 Google了一下发现原来微信调整了字体大小会放大网页的字体&#xff0c;导致排版混乱。通过设置可以禁止网页字体被放大&#xff1a…

液压支架销轴力学计算分析研究_基于RFID射频精准定位的智能开采研究与应用...

一、项目背景近年来随着智能开采技术的不断发展&#xff0c;装备和新工艺不断更新换代,在智能开采中&#xff0c;对采煤机位置的精准定位是能否实现智能开采的关键&#xff0c;只有准确无误地获取煤机的准确位置&#xff0c;才能实现工作面的智能化开采&#xff0c;进而提高生产…