<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > I2C總線(xiàn)在Linux系統中的驅動(dòng)設計

I2C總線(xiàn)在Linux系統中的驅動(dòng)設計

作者: 時(shí)間:2009-12-10 來(lái)源:網(wǎng)絡(luò ) 收藏
當需要使用控制器模塊時(shí),可以使用控制器的設備管理文件loadi2c。該管理文件運行后,將自動(dòng)在的/dev/目錄下創(chuàng )建設備節點(diǎn)i2c。loadi2c文件內容如下:

本文引用地址:http://dyxdggzs.com/article/152251.htm


由于各模塊間有上下層關(guān)系,則加載模塊順序應是從上到下,最先加載i2c-core,最后加載i2c-s3c2410。而卸載則順序相反。加載模塊i2c-algo-s3c2410時(shí),必須延時(shí)1 s以等待該模塊初始化完成,否則無(wú)法加載下一個(gè)模塊i2c-s3c2410。

5 對文件的使用
的/dev/目錄下創(chuàng )建設備節點(diǎn)i2c成功后,就可使用LINUX提供的一系列函數實(shí)現驅動(dòng),這些函數包括ioctl(),open(),close(),read()與write()等。
5.1 ioctl()函數的使用
控制器驅動(dòng)(字符型)提供ioctl()函數用于設定I2C總線(xiàn)控制器的一些參數,該函數常用命令有:
(1)I2C_SLAVE第2參數取值為I2C從機地址,用來(lái)設定I2C從機地址;I2C_SLAVE_FORCE:第2參數取值為I2C從機地址,用來(lái)修改I2C從機地址;I2C_TENBIT:第2參數取值為0:從機地址為7 bit;第2參數取值為1:從機地址為10bit。用來(lái)指定I2C從機地址的位數;I2C_S3C2410_SET_SPEED:第2參數取值為I2C總線(xiàn)控制器分頻值。用來(lái)設置I2C總線(xiàn)控制器時(shí)鐘頻率;
(2)常用設置設置I2c從機地址為0xA0,由于是7 bit地址,所以要右移1位:ret=ioctl(fd,I2C_SLAVE,0xA0>>1);指定從機地址為7 bit,ret=ioctl(fd,I2C_TENBIT,0)。
5.2 open(),close()的使用
應用程序要使用本驅動(dòng)來(lái)訪(fǎng)問(wèn)外部I2C器件,首先要通過(guò)open()來(lái)打開(kāi)其驅動(dòng),使用完畢后使用close()將其關(guān)閉。打開(kāi)與關(guān)閉I2C總線(xiàn)控制器驅動(dòng):


5.3 read()與write()函數的使用
用read()與write()函數讀/寫(xiě)I2C總線(xiàn),常用設置如下:

write(fd,data,1);向I2C總線(xiàn)發(fā)送1字節數據data;
假設子地址為0,向有子地址的FC器件寫(xiě)入8個(gè)字節:unsigned char sendbuf[9]={0,1,2,3,4,5,6,7,8);/*第1個(gè)字節0為子地址*/write(fd,sendbuf,9);/*寫(xiě)入8個(gè)字節,第1個(gè)字節為子地址*/從有子地址的I2C器件讀取8個(gè)字節,假設子地址為0:
unsigned char suba=0;recbuf[8];
write(fd,suba,1);/*發(fā)送子地址0*/
read(fd,recbuf,8);/*從子地址0開(kāi)始讀取8個(gè)字節*/

6 結束語(yǔ)
設備驅動(dòng)程序是操作內核和機器硬件之間的接口,通過(guò)它可使設備文件化。本文首先介紹I2C總線(xiàn)接口的工作模式和特點(diǎn),簡(jiǎn)要介紹I2C字符型驅動(dòng)模塊的特點(diǎn),研究ARM 下的鍵盤(pán)擴展器件ZLG7290驅動(dòng)程序,詳細描述了基于I2C總線(xiàn)通信的鍵值讀取過(guò)程,具有廣泛的應用價(jià)值。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>