#include
#include
#include
#include
#include
#include
#include
#include
#define i2c_retries 0x0701
#define i2c_timeout 0x0702
#define i2c_rdwr 0x0707
/*********定義struct i2c_rdwr_ioctl_data和struct
* i2c_msg,要和核心一致*******/
struct i2c_msg
;struct i2c_rdwr_ioctl_data
;/***********主程式***********/
int main()
e2prom_data.nmsgs=2;
/** *因為操作時序中,最多是用到2個開始訊號(位元組讀操作中),所以此將
* *e2prom_data.nmsgs配置為2
**/e2prom_data.msgs=(struct i2c_msg*)malloc(e2prom_data.nmsgs*sizeof(struct i2c_msg));
if(!e2prom_data.msgs)
ioctl(fd,i2c_timeout,1);/*超時時間*/
ioctl(fd,i2c_retries,2);/*重複次數*/
sleep(1);
/******read
* data
* from
* e2prom*******/
while(1)
printf("%x",(e2prom_data.msgs[1]).buf[0]);
printf("%x\n",(e2prom_data.msgs[1]).buf[1]);
sleep(1);
}/***列印讀出的值,沒錯的話,就應該是前面寫的0x58了***/
close(fd);
return 0;
}
I2C匯流排 LM75的讀寫
圖一 iic引腳配置為iic模式 圖二 iic控制暫存器 圖三 cortex a8 內部iic相關暫存器框圖 圖四 iic狀態暫存器 圖5 lm75 外圍電路 讀取lm75溫度的幾個步驟 1 傳送從機位址 2.配置模式,lm74有四種模式,我們這裡只選第一種唯讀模式 3.再次傳送從機位址,選擇lm7...
i2c裝置驅動
1,i2c 裝置註冊 static struct i2c board info i2c2 devices i2c裝置一般在板級 中註冊 static void msm8916 add i2c deivces void 2,i2c驅動註冊 include static const struct i2c...
I2C驅動例項解析
簡單的說,i2c驅動也就三步吧,註冊i2c裝置,註冊i2c裝置驅動,建立sysfs檔案供上層呼叫。1.註冊i2c裝置。先定義乙個i2c board info static struct i2c board info initdata x i2c info 再註冊,一般會註冊乙個client。i2c ...