I2C测试【转】
本文转载自:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
#include <stdio.h>#include <linux/types.h>#include <stdlib.h>#include <fcntl.h>#include <unistd.h>#include <sys/types.h>#include <sys/ioctl.h>#include <errno.h>#include <linux/i2c.h>#include <linux/i2c-dev.h>int main(){ int fd,ret; struct i2c_rdwr_ioctl_data codec_data; fd=open("/dev/i2c-3",O_RDWR); if(fd<0) perror("open error"); codec_data.nmsgs=2; codec_data.msgs=(struct i2c_msg*)malloc(codec_data.nmsgs*sizeof(struct i2c_msg)); if(!codec_data.msgs) { perror("malloc error"); exit(1); } ioctl(fd,I2C_TIMEOUT,1);/*超时时间*/ ioctl(fd,I2C_RETRIES,2);/*重复次数*/ sleep(1); codec_data.nmsgs=1; (codec_data.msgs[0]).len=2; (codec_data.msgs[0]).addr=(0x36 >> 1);//我的音频硬件地址; (codec_data.msgs[0]).flags=0; //write (codec_data.msgs[0]).buf=(unsigned char*)malloc(2); (codec_data.msgs[0]).buf[0]=0x04; (codec_data.msgs[0]).buf[1]=0x55;//the data to write ret=ioctl(fd,I2C_RDWR,(unsigned long)&codec_data); if(ret<0) perror("ioctl error1"); sleep(1); /******read data from e2prom*******/ printf("read start\n"); codec_data.nmsgs=2; (codec_data.msgs[0]).len=1; //e2prom 目标数据的地址 (codec_data.msgs[0]).addr=(0x36 >> 1);//yinpin; (codec_data.msgs[0]).flags=0;//write (codec_data.msgs[0]).buf[0]=0x04; (codec_data.msgs[1]).len=1;//读出的数据 (codec_data.msgs[0]).addr=(0x36 >> 1); (codec_data.msgs[1]).flags=I2C_M_RD;//read (codec_data.msgs[1]).buf=(unsigned char*)malloc(1);//存放返回值的地址。 (codec_data.msgs[1]).buf[0]=0;//初始化读缓冲 ret=ioctl(fd,I2C_RDWR,(unsigned long)&codec_data); if(ret<0) perror("ioctl error2"); close(fd); return 0;} |
音频的硬件地址是没有错误的。在开发板上运行的结果是这样的
ioctl error2: Remote I/O error
只提示了读的时候错误了。请问,这个错误是怎么造成的,我一直困惑了好久!
I2C测试【转】的更多相关文章
- [RK3288][Android6.0] 调试笔记 --- 测试I2C设备正常传输方法【转】
本文转载自:http://blog.csdn.net/kris_fei/article/details/71515020 Platform: RockchipOS: Android 6.0Kernel ...
- I2C控制器的Verilog建模之二
前言:接着上一篇的I2C写操作,今天要实现一个I2C的读操作.虽然在ADV7181B配置内部寄存器时没有必要使用到读操作,但是为了进一步确认寄存器是否在I2C写模块下被正确配置,这一步是必不可少的. ...
- IPQ4028开启I2C功能
0 概述 IPQ4028是一款集约式4核心ARM7 SOC芯片,内嵌独立双频WiFi子系统,offload式,支持MU-MIMO,最高支持1.2Gbps.标准的官方Demo方案中,IPQ4019开启了 ...
- AT24 I2C EEPROM解析及测试
关键词:AT24.I2C.nvmem.EEPROM. 1. AT24C介绍 AT24C是一款采用I2C通信的EEPROM,相关驱动涉及到I2C和nvmem. I2C是读写数据的通道,nvmem将AT2 ...
- [I2C]pca9555应用层测试代码
注意点: 如果在设置I2C_SLAVE的时候,提示device_busy,可以使用I2C_SLAVE_FORCE, 在驱动里面二者对应同一个case语句 应用层可以调用接口:i2c_smbus_wri ...
- 树莓派高级GPIO库,wiringpi2 for python使用笔记(五)i2c读取测试
wiringpi2显然也把i2c驱动带给了Python,手头上正巧有一个DS3231的模块,上边带了一个DS3231 RTC(实时时钟),与一片24C32,两个芯片均为iic总线设备,与树莓派接线如下 ...
- 如何在linux中测试i2c slave模式驱动的功能?
1. 硬件要求 1.1 需要两台机器,一台作为i2c master(记为M),另一台作为i2c slave(记为S) 1.2 使用杜邦线连接两台机器的i2c信号线 2. 使能内核选项CONFIG_I2 ...
- tpyboard v202 测试tcp通讯,i2c的oled程序,呼吸灯源码,希望对大家有所帮助
1.下载到板子里的main.py代码如果需要驱动oled的,可以参考我上面那篇文章import time, mathimport machineimport network# from ssd1306 ...
- AC6102开发板USB3.0测试和使用说明
AC6102开发板USB3.0测试和使用说明 概述 AC6102上集成了一颗Cypress 推出的高性能USB3.0传输芯片CYUSB3014,Cypress称之为EZ-USBFX3.该芯片性能强劲, ...
随机推荐
- poj 3304 判断是否存在一条直线与所有线段相交
Segments Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8579 Accepted: 2608 Descript ...
- 多线程之 Volatile 变量 详解
Java 理论与实践: 正确使用 Volatile 变量 原文:http://www.ibm.com/developerworks/cn/java/j-jtp06197.html 总结: volati ...
- poj1149最大流经典构图神题
题意:n个顾客依次来买猪,有n个猪房,每个顾客每次可以开若干个房子,买完时,店主可以调整这位顾客 开的猪房里的猪,共m个猪房,每个猪房有若干猪,求最多能卖多少猪. 构图思想:顾客有先后,每个人想要的猪 ...
- 基于SSH+shiro+solr的家庭记账系统
项目地址: https://github.com/jianghuxiaoao/homeaccount
- Spring Boot集成Spring Data Reids和Spring Session实现Session共享(多个不同的应用共用一个Redis实例)
从Redis的Key入手,比如Spring Session在注解@EnableRedisHttpSession上提供了redisNamespace属性,只需要在这里设置不同的值即可,效果应该是这样的: ...
- 【mac】屏幕截图快捷键
这里只说四种 1.command+shift+4 截图是区域截图,会自动保存在桌面上 2.command+shift+control+4 区域截图,截图会自动保存在剪切板中,然后你可以通过comman ...
- 【c++】面向对象程序设计之关于继承
面向对象程序设计的核心思想是数据抽象(类的接口与实现分离).继承和动态绑定 基类 虚函数:基类希望派生类各自定义适合自身的版本的函数 在c++中,当我们使用基类的引用或指针调用虚函数时将发生动态绑定. ...
- sqlmap sql 注入攻击
- 有关不同浏览器不同版本号的css以及js计算高度的问题
1.input在全部浏览器以及全部的版本号中,都是定义了高度.然后再定义padding或者border值.这时候都会撑开.高度是本身的高度在padding值和border值 2.select在gool ...
- v-if v-else-if v-else
1.代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...