iTop4412驅動開發之九 I2C應用程式

2021-10-07 18:10:55 字數 1867 閱讀 4670

第一種方式:當主機板外接i2c裝置時,可直接使用cpu的i2c介面卡,在應用層即可直接控制裝置。

#include

//printf()

#include

//exit()

#include

//strlen(), bzero();

#include

#include

#include

#include

#include

#include

#include

#include

inti2c_write

(int fd,

char dev_addr,

char write_addr,

char data)

; buf[0]

= write_addr;

buf[1]

= data;

msg.addr = dev_addr;

msg.flags =0;

msg.len =2;

msg.buf = buf;

i2c_data.nmsgs =1;

i2c_data.msgs =

&msg;

int ret =

ioctl

(fd, i2c_rdwr,

&i2c_data);if

(ret <0)

return ret;

}int

i2c_read

(int fd,

char dev_addr,

char read_addr,

char

*buf,

int size)

return ret;

}int

main

(int argc,

char

*ar**)

;i2c_read

(fd,

0x1a

,0x0

, buf,1)

;close

(fd)

;return0;

}

第二種方式:linux核心原始碼ts2007觸控驅動,使用i2c控制。

1、在板子適配檔案mach-itop4412.c中新增

struct i2c_board_info i2c_devs7[

] __initdata =

} //註冊到核心

i2c_register_board_info(7

, i2c_devs7,

array_size

(i2c_devs7));

2、驅動**

static

struct i2c_driver tsc2007_driver =

,//.id_table = tsc2007_idtable,

.probe = tsc2007_probe,

.remove =

__devexit_p

(tsc2007_remove),}

;static

int __init tsc2007_init

(void

)static

void __exit tsc2007_exit

(void

)module_init

(tsc2007_init)

;module_exit

(tsc2007_exit)

;module_description

("tsc2007 touchscreen driver");

module_license

("gpl"

);

iTop4412 裸機開發 LED

平台 itop4412 scp 2g 開發板有兩個可控制的led燈 分別接到引腳 kp col0和vdd50 en kp col0就是gpl2 0 vdd50 en就是gpk1 1 配置gpx con對應位為輸出功能,設定gpx dat相應管腳輸出為1,就可以點亮led燈了。實現 如下 原始碼1 s...

iTOP 4412 驅動模組傳引數

1 核心模組可以通過module param來傳單個引數 module param name,type,perm name 模組引數的名稱 type 模組引數的資料型別 支援int long short uint ulong ushort類 型 perm 模組引數的訪問許可權 s irusr引數表示...

iTop4412之DS18B20驅動開發

執行序列 通過單線匯流排埠訪問 ds18b20 的協議如下 步驟1.初始化 步驟2.rom 操作指令 步驟3.ds18b20 功能指令 步驟1.初始化 主機首先發出乙個480 960微秒的低電平脈衝,然後釋放匯流排變為高電平,並在隨後的480微秒時間內對匯流排進行檢測,如果有低電平出現說明匯流排上有...