LM75溫度晶元I2C驅動

2021-06-06 22:49:10 字數 1073 閱讀 8224

#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 ...