<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è) > 嵌入式系統 > 設計應用 > 嵌入式Linux設備驅動(dòng)開(kāi)發(fā)之:按鍵驅動(dòng)程序實(shí)例

嵌入式Linux設備驅動(dòng)開(kāi)發(fā)之:按鍵驅動(dòng)程序實(shí)例

作者: 時(shí)間:2013-09-13 來(lái)源:網(wǎng)絡(luò ) 收藏

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

11.6.3按鍵驅動(dòng)的測試程序

的測試程序所下所示。在測試程序中,首先打開(kāi)按鍵設備文件和gpio設備(包括4個(gè)LED和蜂鳴器)文件,接下來(lái),根據按鍵的輸入值(按鍵ID)的二進(jìn)制形式,LEDD9~D12發(fā)亮(例如,按下11號按鍵,則D9、D10和D12會(huì )發(fā)亮),而蜂鳴器當每次按鍵時(shí)發(fā)出聲響。

/*butt_test.c*/

#includesys/stat.h>

#includefcntl.h>

#includestdio.h>

#includesys/time.h>

#includesys/types.h>

#includeunistd.h>

#includeasm/delay.h>

#includebutt_drv.h

#includegpio_drv.h

main()

{

intbutt_fd,gpios_fd,i;

unsignedcharkey=0x0;

butt_fd=open(BUTTONS_DEVICE_FILENAME,O_RDWR);/*打開(kāi)按鈕設備*/

if(butt_fd==-1)

{

printf(Openbuttondevicebuttonerrr!n);

return0;

}

gpios_fd=open(GPIO_DEVICE_FILENAME,O_RDWR);/*打開(kāi)GPIO設備*/

if(gpios_fd==-1)

{

printf(Openbuttondevicebuttonerrr!n);

return0;

}

ioctl(butt_fd,0);/*清空鍵盤(pán)緩沖區,后面參數沒(méi)有意義*/

printf(PressNo.16keytoexitn);

do

{

if(read(butt_fd,key,1)=0)/*讀鍵盤(pán)設備,得到相應的鍵值*/

{

continue;

}

printf(KeyValue=%dn,key);

for(i=0;iLED_NUM;i++)

{

if((key(1i))!=0)

{

ioctl(gpios_fd,LED_D09_SWT+i,LED_SWT_ON);/*LED發(fā)亮*/

}

}

ioctl(gpios_fd,BEEP_SWT,BEEP_SWT_ON);/*發(fā)聲*/

sleep(1);

for(i=0;iLED_NUM;i++)

{

ioctl(gpios_fd,LED_D09_SWT+i,LED_SWT_OFF);/*LED熄滅*/

}

ioctl(gpios_fd,BEEP_SWT,BEEP_SWT_OFF);

}while(key!=16);/*按16號鍵則退出*/

close(gpios_fd);

close(butt_fd);

return0;

}

首先編譯和加載,而且要創(chuàng )建設備文件節點(diǎn)。

$makeclean;make/*驅動(dòng)程序的編譯*/

$insmodbutt_dev.ko/*加載buttons*/

$cat/proc/devices/*通過(guò)這個(gè)命令可以查到buttons設備的主設備號*/

$mknod/dev/buttonsc2520/*假設主設備號為252,創(chuàng )建設備文件節點(diǎn)*/

接下來(lái),編譯和加載GPIO驅動(dòng)程序,而且要創(chuàng )建設備文件節點(diǎn)。

$makeclean;make/*驅動(dòng)程序的編譯*/

$insmodgpio_drv.ko/*加載GPIO驅動(dòng)*/

$cat/proc/devices/*通過(guò)這個(gè)命令可以查到GPIO設備的主設備號*/

$mknod/dev/gpioc2510/*假設主設備號為251,創(chuàng )建設備文件節點(diǎn)*/

然后編譯并運行驅動(dòng)測試程序。

$arm-linux-gcc–obutt_testbutt_test.c

$./butt_test

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

linux相關(guān)文章:linux教程


蜂鳴器相關(guān)文章:蜂鳴器原理

上一頁(yè) 1 2 3 4 5 下一頁(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>