Linux I2C 对16位寄存器地址 进行读写操作
2015-05-31 14:04
1311 查看
前提是i2c控制器的驱动必须已经正常运行,标准的i2c tool只能对8位的地址进行读写,但是eeprom这种16位的地址就无能无力了
所以这种对16位地址的读写支持,在嵌入式领域还是十分常见的
主要利用标准的Linux I2C接口,struct i2c_msg; //I2C消息数据结构
首先是I2C时序图(来自网络)
读,需要两条消息:第一条,确认寄存器地址,长度是2,因为寄存器地址是16bit,第二条,是发送读写指令,长度是2,读取是16bit长度的
写,一条消息即可,因为不需要重新start,就可以将多出的8bit寄存器地址,当做第一个字节的数据
所以这种对16位地址的读写支持,在嵌入式领域还是十分常见的
主要利用标准的Linux I2C接口,struct i2c_msg; //I2C消息数据结构
首先是I2C时序图(来自网络)
读,需要两条消息:第一条,确认寄存器地址,长度是2,因为寄存器地址是16bit,第二条,是发送读写指令,长度是2,读取是16bit长度的
写,一条消息即可,因为不需要重新start,就可以将多出的8bit寄存器地址,当做第一个字节的数据
相关文章推荐
- Linux socket 初步
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- 基于 Linux 集群环境上 GPFS 的问题诊断
- 谁是桌面王者?Win PK Linux三大镇山之宝
- vivi下重新调整分区
- Linux VS Unix:Linux欲一统天下 Unix不死
- linux下设定环境变量
- Linux下修改MySQL编码的方法