/***********************************************************************
* I.MX6 SHT20 Linux 驱动移植
* 说明:
* 本来打算使用SHT10来做湿度检测,发现其并不是I2C接口,当然也使用
* GPIO能获取到相关数据了,不过由于不小心将其烧坏了,所以换成SHT20。
*
* 2016-10-10 深圳 南山平山村 曾剑锋
**********************************************************************/ 一、参考驱动:
Android_Native_Service_SHT20Demo
https://github.com/HowardLin/Android_Native_Service_SHT20Demo/blob/master/SHT20_Module_1.2/sht20_driver/sht20.c#L126 二、驱动修改:
static s32 sht20_get_id(struct i2c_client *client, u8 serial[])
{
s32 result;
u8 serialA[];
u8 serialB[]; u8 command1[] = {0xFA, 0x0F}; /* Read from memory location 1 */
u8 command2[] = {0xFC, 0xC9}; /* Read from memory location 2 */ struct i2c_msg get_serial_number_msg1[] = {
{
.addr = client->addr,
.flags = ~I2C_M_RD,
.len = ,
.buf = command1,
},
{
.addr = client->addr,
.flags = I2C_M_RD,
.len = ,
.buf = serialA,
},
};
result = i2c_transfer(client->adapter, get_serial_number_msg1, ); struct i2c_msg get_serial_number_msg2[] = {
{
.addr = client->addr,
.flags = ~I2C_M_RD,
.len = ,
.buf = command2,
},
{
.addr = client->addr,
.flags = I2C_M_RD,
.len = ,
.buf = serialB,
}
};
result = i2c_transfer(client->adapter, get_serial_number_msg2, ); // printk(KERN_INFO "%x %x %x %x %x %x %x %x", serialB[3], serialB[4], serialA[0], serialA[2], serialA[4], serialA[6], serialB[0], serialB[1]); serial[] = serialB[];
serial[] = serialB[];
serial[] = serialA[];
serial[] = serialA[];
serial[] = serialA[];
serial[] = serialA[];
serial[] = serialB[];
serial[] = serialB[]; return result;
}

I.MX6 SHT20 Linux 驱动移植的更多相关文章

  1. I.MX6 AW-NB177NF WIFI 驱动移植问题

    /******************************************************************************** * I.MX6 AW-NB177NF ...

  2. linux驱动移植的重要数据结构

    转载:http://www.embeddedlinux.org.cn/html/jishuzixun/201304/14-2538.html 对于嵌入式 Linux 系统来说,有各种体系结构的处理器和 ...

  3. linux驱动移植问题点

    1.I2C地址是否和其它IC冲突.通过改地址解决 ——通常,以下三种情况的log表现相同:1.ic没连接到主板:2.i2c地址错误:3.该器件I2C地址与同组其它器件冲突 2.I2C通信是否受到其它s ...

  4. linux网卡驱动移植

    这里重要的是物理层PHY receiver,MAC(media access control)层,这里与软件中的协议栈不同,在硬件上MAC是PHY的下一层.DM9000A将MAC和PHY做到一起,也可 ...

  5. 【转】 linux内核移植和网卡驱动(二)

    原文网址:http://blog.chinaunix.net/uid-29589379-id-4708911.html 一,内核移植步骤: 1, 修改顶层目录下的Makefile ARCH       ...

  6. 【转】 linux内核移植和驱动添加(三)

    原文网址:http://blog.chinaunix.net/uid-29589379-id-4708909.html 原文地址:linux内核移植和驱动添加(三) 作者:genehang 四,LED ...

  7. Linux开源模块迁移概述暨交叉编译跨平台移植总结--从《嵌入式Linux驱动模板简洁和工程实践》

    本文摘录<嵌入式Linux驱动模板简洁和工程实践>一本书"开发和调试技术". Linux强大的是,有那么多的开源项目可以使用.通常非常需要可以通过寻找相关的源模块被定义 ...

  8. 【Linux驱动】TQ2440 DM9000E网卡驱动移植(Linux-2.6.30.4)

    花了一天的时间研究了一下Linux-2.6.30.4版本号内核下关于TQ2440 DM9000E的网卡驱动移植.总结一下自己的收获. 事实上.在Linux-2.6.30.4版本号内核下有关于网卡驱动, ...

  9. Linux Charger IC 驱动移植总结

    Linux Charger IC 驱动移植总结 文章目录 Linux Charger IC 驱动移植总结 1 设备树的基本知识 设备树的概念 设备树的基本结构 compatible属性 举个栗子 2 ...

随机推荐

  1. poj1651

    Multiplication Puzzle Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7252   Accepted:  ...

  2. asp.net 错误跳转

    每当用户访问错误页面时,会出现不友好的404错误,所以为了防止这种不友好,我们在web.config中的<system.web>节点下配置 <customErrors>,在出现 ...

  3. mysql 索引长度限制

    MyISAM存储引擎引键的长度综合不能超过1000字节 InnoDB单列索引长度不能超过767bytes,联合索引还有一个限制是3072

  4. 怎么设置 mysql 多主复制

    更新 其实本文主要来自www.digitalocean.com ,但是我没有买他们家的 VPS 用来 demo 了.只是用vagrant 来模拟了. 介绍 说说关于通过两台 vps 来扩展 mysql ...

  5. 在单元测试中指定log4j的配置文件

    在开发过程中,我们会使用到log4j来输出日志,我们希望在单元测试的时候,只看到部分日志信息,或者定义日志输出的级别.   这个时候手工指定log4j的配置文件:   具体做法如下: 定义类如下: i ...

  6. js 获得每周周日到周一日期

    //得到每周的第一天(周日)function getFirstDateOfWeek(theDate){ var firstDateOfWeek; theDate.setDate(theDate.get ...

  7. Linux gcc编译(动态库,静态库)

    1. linux 库路径: /lib , /usr/lib , /usr/local/lib 2.linux 编译静态库 a.编写源文件vi pr1.c void print1(){    print ...

  8. IT公司100题-16-层遍历二元树

    问题描述: 层遍历二叉树,同一层从左往右打印. 定义二元查找树的结点为: typedef struct BSTreeNode { int data; BSTreeNode *left; BSTreeN ...

  9. [转]Putty中文乱码解决方法

    from: http://www.putty.ws/putty-luanma putty使用的过程中,你是否遇到过putty出现中文乱码的情况呢?putty终端出现乱码,是情况,多数是由于系统或软件缺 ...

  10. ODI中通过配置表和自定义逆向工程获取数据库信息

    自定义逆向工程RKM 从配置表meta_db, meta_table, meta_column, meta_key中获取生产库的元数据信息.