91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux I2C App開發的示例分析

發布時間:2021-10-21 17:12:52 來源:億速云 閱讀:176 作者:柒染 欄目:互聯網科技

今天就跟大家聊聊有關Linux I2C App開發的示例分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

1 , 頭文件

/linux/i2c-dev.h

2 , 打開文件,請看示例代碼

int file;
  int adapter_nr = 1; /* I2C適配器編號 */
  char filename[20];
 
  snprintf(filename, 19, "/dev/i2c-%d", adapter_nr);
  file = open(filename, O_RDWR);
  if (file < 0) {
    /* 打開失敗 */
    exit(1);
}

3 , 指定I2C從設備地址

int addr = 0x40; /* I2C 從機地址 */
  if (ioctl(file, I2C_SLAVE, addr) < 0) {
    /* 打開失敗 */
    exit(1);
}

4 , 使用SMBUS API 訪問設備

5 , SMBUS 詳細接口時序說明

標記符長度說明
S1 bitI2C啟動
P1 bitI2C停止
Rd/Wr1 bit控制字中的讀寫標志位,讀操作為1,寫操作為0
A, NA1 bit應答標志
Addr7 bits7位I2C地址
Data8 bits字節數據
Comm8 bits命令字節,可理解為I2C設備寄存器地址
[..]N charI2C設備返回的數據

6  , 相關接口及相應時序說明

【1】__s32 i2c_smbus_write_quick(int file, __u8 value);
發送一個寫控制字,可用于測試I2C設備是否存在。
S Addr Rd [A] [Data] NA P

【2】__s32 i2c_smbus_read_byte(int file);
發送一個讀控制字,并從I2C設備中讀取一個字節。
S Addr Rd [A] [Data] NA P

【3】__s32 i2c_smbus_write_byte(int file, __u8 value);
發送一個寫控制字,并向I2C設備中寫入一個字節。
S Addr Wr [A] Data [A] P

【4】__s32 i2c_smbus_read_byte_data(int file, __u8 command);
向I2C設備發送一個寫控制字+控制指令(寄存器地址),再發送一個讀控制字,此時I2C從設備內部的讀寫指針轉移到指定的位置,并返回一個字節,最后返回一個無應答NA。
S Addr Wr [A] Comm [A] S Addr Rd [A] [Data] NA P

【5】__s32 i2c_smbus_write_byte_data(int file, __u8 command, __u8 value);
向I2C設備發送一個寫控制字+控制指令(寄存器地址),緊接著發送指令內容(寄存器內容,單字節)。
S Addr Wr [A] Comm [A] Data [A] P

【6】__s32 i2c_smbus_read_i2c_block_data(int file, __u8 command, __u8 *values);
向I2C設備發送一個寫控制字+控制指令(寄存器地址),再發送一個讀控制字,此時I2C從設備內部的讀寫指針轉移到指定的位置,并連續返回多個字節,I2C主機讀取到一定數量字節內容之后發送無應答NA。
S Addr Wr [A] Comm [A] S Addr Rd [A] [Data] A [Data] A ... A [Data] NA P

【7】__s32 i2c_smbus_write_i2c_block_data(int file, __u8 command, __u8 length, __u8 *values);
向I2C設備發送一個寫控制字+控制指令(寄存器地址),接著發送發送指令內容(寄存器內容,多字節)
S Addr Wr [A] Comm [A] Data [A] Data [A] ... [A] Data [A] P

【注意點1】
這些函數如果返回-1代表操作失敗。在一些具有寫功能的函數中,返回0代表操作成功,在具有讀功能的函數中,返回讀取的字節數(除i2c_smbus_read_block_data)。讀塊(block)操作時不應超過32個字節。

看完上述內容,你們對Linux I2C App開發的示例分析有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

报价| 自治县| 平凉市| 台北市| 古浪县| 嘉鱼县| 通榆县| 沈阳市| 会东县| 榆社县| 宜宾县| 张家口市| 饶平县| 稷山县| 西峡县| 皮山县| 莲花县| 长寿区| 亚东县| 大关县| 朝阳区| 曲阳县| 娄烦县| 静乐县| 乌鲁木齐县| 沂源县| 乐清市| 桦南县| 壶关县| 嘉峪关市| 修文县| 公安县| 晋中市| 乐都县| 胶州市| 交口县| 重庆市| 漳州市| 镇安县| 南安市| 汕尾市|