真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

LinuxI2CApp開發(fā)的示例分析

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

我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、網(wǎng)站制作、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、安陽縣ssl等。為成百上千企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的安陽縣網(wǎng)站制作公司

1 , 頭文件

/linux/i2c-dev.h

2 , 打開文件,請(qǐng)看示例代碼

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

3 , 指定I2C從設(shè)備地址

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

4 , 使用SMBUS API 訪問設(shè)備

5 , SMBUS 詳細(xì)接口時(shí)序說明

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

6  , 相關(guān)接口及相應(yīng)時(shí)序說明

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

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

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

【4】__s32 i2c_smbus_read_byte_data(int file, __u8 command);
向I2C設(shè)備發(fā)送一個(gè)寫控制字+控制指令(寄存器地址),再發(fā)送一個(gè)讀控制字,此時(shí)I2C從設(shè)備內(nèi)部的讀寫指針轉(zhuǎn)移到指定的位置,并返回一個(gè)字節(jié),最后返回一個(gè)無應(yīng)答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設(shè)備發(fā)送一個(gè)寫控制字+控制指令(寄存器地址),緊接著發(fā)送指令內(nèi)容(寄存器內(nèi)容,單字節(jié))。
S Addr Wr [A] Comm [A] Data [A] P

【6】__s32 i2c_smbus_read_i2c_block_data(int file, __u8 command, __u8 *values);
向I2C設(shè)備發(fā)送一個(gè)寫控制字+控制指令(寄存器地址),再發(fā)送一個(gè)讀控制字,此時(shí)I2C從設(shè)備內(nèi)部的讀寫指針轉(zhuǎn)移到指定的位置,并連續(xù)返回多個(gè)字節(jié),I2C主機(jī)讀取到一定數(shù)量字節(jié)內(nèi)容之后發(fā)送無應(yīng)答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設(shè)備發(fā)送一個(gè)寫控制字+控制指令(寄存器地址),接著發(fā)送發(fā)送指令內(nèi)容(寄存器內(nèi)容,多字節(jié))
S Addr Wr [A] Comm [A] Data [A] Data [A] ... [A] Data [A] P

【注意點(diǎn)1】
這些函數(shù)如果返回-1代表操作失敗。在一些具有寫功能的函數(shù)中,返回0代表操作成功,在具有讀功能的函數(shù)中,返回讀取的字節(jié)數(shù)(除i2c_smbus_read_block_data)。讀塊(block)操作時(shí)不應(yīng)超過32個(gè)字節(jié)。

看完上述內(nèi)容,你們對(duì)Linux I2C App開發(fā)的示例分析有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


文章標(biāo)題:LinuxI2CApp開發(fā)的示例分析
URL地址:http://weahome.cn/article/pceojj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部