当前位置: 首页 > news >正文

网页设计做音乐网站潍坊网站设计制作

网页设计做音乐网站,潍坊网站设计制作,u钙网logo设计影视剪辑,wordpress 做下载站Linux下读写芯片的I2C寄存器 2012-01-10 11:40:18 标签#xff1a;Linux 寄存器 驱动 读写 I2C 原创作品#xff0c;允许转载#xff0c;转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://ticktick.blog.51cto.com/823160/76096…Linux下读写芯片的I2C寄存器 2012-01-10 11:40:18 标签Linux 寄存器 驱动 读写 I2C 原创作品允许转载转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://ticktick.blog.51cto.com/823160/760965 要想在Linux下读写芯片的I2C寄存器一般需要在Linux编写一份该芯片的I2C驱动关于Linux下如何编写I2C驱动前一篇文章《手把手教你写Linux I2C设备驱动》已经做了初步的介绍并且留下了两个疑问尚未解决第一个是如何对Linux提供的I2C操作函数进行进一步封装实现对芯片寄存器的读写另一个是如何在用户空间调用该I2C驱动代码。本文将讨论前一个问题。     首先我们要了解Linux系统提供的I2C操作函数怎么使用上篇文章已经提到过对I2C设备的读写Linux系统提供了多种接口这些接口可以在内核的 i2c.h 中找到这里我主要介绍下面这组读写接口 extern int i2c_master_send(struct i2c_client *,const char* ,int);       extern int i2c_master_recv(struct i2c_client *,char* ,int);      第一个参数是 i2c_client 对象指针第二个参数是要传输的数据buffer指针第三个参数为buffer的大小。     接口函数已经有了下面我们要解决的问题就是以何种形式/规则去使用这些接口才能正确地读写芯片的相关寄存器。     首先我们需要查询芯片手册找到芯片手册中关于寄存器的I2C读写时序其实大多数芯片的I2C寄存器的读写时序都是一样的下面我还是以手头的TVP5158芯片为例。     首先分析写操作该芯片的手册中给出的I2C寄存器写时序图如下     从上图可以看出真正需要执行写操作的有两处Step4 和 Step6 Step4首先写入寄存器的偏移地址而Step6则是写入到该寄存器的值。由此已经很清楚了对于写I2C寄存器我们需要做的就是给 i2c_master_send 函数传入两个字节的数据即可第一个字节为寄存器的地址第二个字节为要写入寄存器的数据。示例如下 static int tvp5158_i2c_write( struct i2c_client* client,uint8_t reg,uint8_t data)  {      unsigned char buffer[2];            buffer[0]  reg;      buffer[1]  data;            if( 2! i2c_master_send(client,buffer,2) ) {          printk( KERN_ERR  tvp5158_i2c_write fail! \n );          return -1;      }          return 0;  }      其实挺简单的没有什么复杂的代码。下面再看看读时序。      由上图可以读时序需要做的操作是先向I2C总线上写入需要读的寄存器地址然后读I2C总线上的值。代码写起来也不难示例如下 static int tvp5158_i2c_read( struct i2c_client* client,uint8_t reg,uint8_t *data)  {      // write reg addr         if( 1! i2c_master_send(client,reg,1) ) {          printk( KERN_ERR  tvp5158_i2c_read fail! \n );          return -1;      }          // wait      msleep(10);      // read      if( 1! i2c_master_recv(client,data,1) ) {          printk( KERN_ERR  tvp5158_i2c_read fail! \n );          return -1;      }                return 0;  }      到此为止Linux下具体如何封装读写芯片寄存器的方法已经介绍完毕其实并不复杂希望对初学者有所帮助文中有什么讲述不正确的地方欢迎留言或者来信lujun.hustgmail.com交流。
http://wiki.neutronadmin.com/news/184805/

相关文章:

  • 专业做财务公司网站济南市住房和城乡建设局官网
  • 华为云助力企业网站安全保障优秀企业网站案例
  • 网站seo工具wordpress 下载文件
  • 合肥有哪些做网站的公司wordpress前端
  • 网站开发的程序平台重点实验室网站建设的意义
  • a8新媒体的案例免费seo快速收录工具
  • 超大型网站建设购物网站开发历史
  • 郴州网站建设培训个人网站建设与企业网站
  • iis配置网站phpwordpress全站同一个标题
  • 如何建设网站方便后期维护北京口碑最好的教育机构
  • 成都网站建设益友网络wordpress手机号码登录
  • 成绩查询网站开发土特产网站模板 织梦
  • 专业服务网页制作上海网站seo外包
  • 建立个人网站多少钱和卫通app下载
  • 电商网站功能设计用jquery制作网页
  • 网站的特效代码厦门网站建设那家好
  • 秦皇岛做网站的公司哪家好政务网站建设存在问题
  • 做网站常见问题模板免备案的网站空间
  • 国土局网站建设经验上海搭建工厂
  • 企业网站页脚模版免费网站
  • 重庆建设工程网站wordpress调用留言
  • 网站建设方案书怎么签字上传制作一个网站就等于制作一个网页
  • 网域高科学校网站管理系统漏洞wordpress 含演示数据库
  • 西宁个人网站建设重庆专业做网站
  • 杭州城乡建设网站红尘直播
  • 乔拓云网站建设app开发公司成员
  • 做渔具最大的外贸网站河北交通建设投资集团公司网站
  • 工信部网站备案查询官网oppo软件商店
  • 在线考试系统网站开发自媒体135免费版下载
  • 去百度建网站wordpress不同分类文章不同模板