在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式Linux設(shè)備驅(qū)動(dòng)開發(fā)之:按鍵驅(qū)動(dòng)程序?qū)嵗?/p>

            嵌入式Linux設(shè)備驅(qū)動(dòng)開發(fā)之:按鍵驅(qū)動(dòng)程序?qū)嵗?/h1>
            作者: 時(shí)間:2013-09-13 來源:網(wǎng)絡(luò) 收藏

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

            11.6.3按鍵驅(qū)動(dòng)的測(cè)試程序

            的測(cè)試程序所下所示。在測(cè)試程序中,首先打開按鍵設(shè)備文件和gpio設(shè)備(包括4個(gè)LED和蜂鳴器)文件,接下來,根據(jù)按鍵的輸入值(按鍵ID)的二進(jìn)制形式,LEDD9~D12發(fā)亮(例如,按下11號(hào)按鍵,則D9、D10和D12會(huì)發(fā)亮),而蜂鳴器當(dāng)每次按鍵時(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);/*打開按鈕設(shè)備*/

            if(butt_fd==-1)

            {

            printf(Openbuttondevicebuttonerrr!n);

            return0;

            }

            gpios_fd=open(GPIO_DEVICE_FILENAME,O_RDWR);/*打開GPIO設(shè)備*/

            if(gpios_fd==-1)

            {

            printf(Openbuttondevicebuttonerrr!n);

            return0;

            }

            ioctl(butt_fd,0);/*清空鍵盤緩沖區(qū),后面參數(shù)沒有意義*/

            printf(PressNo.16keytoexitn);

            do

            {

            if(read(butt_fd,key,1)=0)/*讀鍵盤設(shè)備,得到相應(yīng)的鍵值*/

            {

            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號(hào)鍵則退出*/

            close(gpios_fd);

            close(butt_fd);

            return0;

            }

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

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

            $insmodbutt_dev.ko/*加載buttons*/

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

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

            接下來,編譯和加載GPIO驅(qū)動(dòng)程序,而且要?jiǎng)?chuàng)建設(shè)備文件節(jié)點(diǎn)。

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

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

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

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

            然后編譯并運(yùn)行驅(qū)動(dòng)測(cè)試程序。

            $arm-linux-gcc–obutt_testbutt_test.c

            $./butt_test

            linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

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


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

            上一頁 1 2 3 4 5 下一頁


            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉