zoukankan      html  css  js  c++  java
  • i2c_smbs 函数

    i2c_smbus系列函数有:

    
    s32 i2c_smbus_read_byte(const struct i2c_client *client);
    s32 i2c_smbus_write_byte(const struct i2c_client *client, u8 value);
    s32 i2c_smbus_read_byte_data(const struct i2c_client *client, u8 command);
    s32 i2c_smbus_write_byte_data(const struct i2c_client *client,u8 command, u8 value);
    s32 i2c_smbus_read_word_data(const struct i2c_client *client, u8 command);
    s32 i2c_smbus_write_word_data(const struct i2c_client *client,u8 command, u16 value);
    s32 i2c_smbus_read_block_data(const struct i2c_client *client,u8 command, u8 *values);
    s32 i2c_smbus_write_block_data(const struct i2c_client *client,u8 command, u8 length, const u8 *values);
    s32 i2c_smbus_read_i2c_block_data(const struct i2c_client *client,u8 command, u8 length, u8 *values);
    s32 i2c_smbus_write_i2c_block_data(const struct i2c_client *client,u8 command, u8 length, const u8 *values);
    
    1. i2c_smbus_read_byte()、i2c_smbus_write_byte()
      这两个函数是没有太大意义的,如果是read,则连读的基地址都没有,如果是write,则是简单将value发送过去了,设备或许都不知道这是发送写的基地址还是写的数据,这两个函数有点类似于i2c_master_recv()、i2c_master_send()。

    2. i2c_smbus_read_byte_data()、i2c_smbus_write_byte_data()
      首先是read,如果是read将传送两个msg,第一个msg用来传送读的基地址,第二个msg用来读取数据。
      然后是write,write只传送一个msg,只发送一个msg不好的地方是只能单方向传输,比如写就只能写,读就只能读(注意读的基地址是写方向)。但是这里为什么可以只传送一个msg呢,因为传输的方向并没有改变,包括写基地址,写数据都是写方向,但是写数据的长度为2,写基地址还是command,写的数据为value。

    3. i2c_smbus_read_word_data()、i2c_smbus_write_word_data()
      同上面类似,只是一次读写两个字节。

    4. i2c_smbus_read_block_data()、i2c_smbus_write_block_data()
      读注意,这里并没有指定读数据的长度。

    5. i2c_smbus_read_i2c_block_data()、i2c_smbus_write_i2c_block_data()
      同上面不一样的是,read时有长度指定。
      而write同上面不同的是,i2c_smbus_write_block_data()函数会将发送数据的长度一起发送给设备,而这里则不会。

    上面的一系列函数最终都是调用的i2c_smbus_xfer()函数,可以自己构造i2c_msg,然后调用i2c_transfer来发送数据。

  • 相关阅读:
    谷歌的 I/O 2019,究竟推出了什么新特性?
    Flutter交互实战-即刻App探索页下拉&拖拽效果
    5G到来,App的未来,是JavaScript,Flutter还是Native ?
    python爬虫-房天下-登录
    python爬虫-有道翻译-js加密破解
    虾米音乐爬虫
    Golang 读写文件
    Golang-使用md5对字符串进行加密
    Golang-使用mysql
    Golang 传递任意类型的切片
  • 原文地址:https://www.cnblogs.com/chay/p/10615148.html
Copyright © 2011-2022 走看看