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.该芯片性能强劲, ...
随机推荐
- PHP文件上传设置和处理(多文件)
<!--upload.php文件内容--><?phpheader("Content-Type:text/html;charset=utf-8");/* //原来$ ...
- asp.net 错误 类型"xxxxx"同时存在于"xxx.dll"和"xxxx.dll" 中
http://walttoney.blog.163.com/blog/static/127685797201051112839328/错误 类型“System.Web.UI.ScriptManager ...
- 理解 Nova 架构
Compute Service Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源. OpenStack 作为 IaaS 的云操作系统,虚拟机生命周期管理也就是通过 Nov ...
- net8:简易的文件磁盘管理操作一(包括文件以及文件夹的编辑创建删除移动拷贝重命名等)
原文发布时间为:2008-08-07 -- 来源于本人的百度文章 [由搬家工具导入] using System;using System.Data;using System.Configuration ...
- Laravel 控制器的response
public function response(){ //响应json $data = [ 'errCode' => 0, 'errMsg' => 'success', 'data' = ...
- 隐藏video标签的下载按钮
问题: 使用video标签时,有些浏览器会显示视频的下载按钮,而这并不是我们需要的功能,必须想办法去掉. 解决方法: 使用下面的css可以达到隐藏下载按钮的效果,但是点击下载的位置,还是能出现开始下载 ...
- 每日记录 2016-4-29 HTML5本地存储
HTML5本地存储 一.HTML5 localStorage 在HTML5中,本地存储是一个window的属性,包括localStorage和 sessionStorage,从名字应该可以很清楚的辨认 ...
- (1)Swing创建窗体
本系列使用Intellij IDEA 2017.3.4版本 一.运行窗体 1. 2. 3. 4. 5. 6. 给JPanel起个名字 -如From 7. 8. 9. 生成 import javax.s ...
- MVC模式(三层架构模式)
(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller). MVC模式最早由Try ...
- @OneToMany
实体关系之@OneToMany 博客分类: hibernate & ejb SQL Order.java package com.entity; import java.io.Seriali ...