新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式Linux設備驅動開發之:GPIO驅動程序實例

        嵌入式Linux設備驅動開發之:GPIO驅動程序實例

        作者: 時間:2013-09-13 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/257110.htm

        staticvoidgpio_cleanup(void)

        {

        cdev_del(gpio_devs);/*字符設備的注銷*/

        unregister_chrdev_region(MKDEV(major,0),1);/*設備號的注銷*/

        printk(Gpiodeviceuninstalledn);

        }

        module_init(gpio_init);

        module_exit(gpio_cleanup);

        MODULE_AUTHOR(David);

        MODULE_LICENSE(DualBSD/GPL);

        下面列出的測試用例:

        /*gpio_test.c*/

        #includestdio.h>

        #includestdlib.h>

        #includeunistd.h>

        #includefcntl.h>

        #includestring.h>

        #includesys/types.h>

        #includesys/stat.h>

        #includegpio_drv.h

        intled_timer(intdev_fd,intled_no,unsignedinttime)

        {/*指定LED發亮一段時間之后熄滅它*/

        led_no%=4;

        ioctl(dev_fd,LED_D09_SWT+led_no,LED_SWT_ON);/*發亮*/

        sleep(time);

        ioctl(dev_fd,LED_D09_SWT+led_no,LED_SWT_OFF);/*熄滅*/

        }

        intbeep_timer(intdev_fd,unsignedinttime)

        {/*開蜂鳴器一段時間之后關閉*/

        ioctl(dev_fd,BEEP_SWT,BEEP_SWT_ON);/*發聲*/

        sleep(time);

        ioctl(dev_fd,BEEP_SWT,BEEP_SWT_OFF);/*關閉*/

        }

        intmain()

        {

        inti=0;

        intdev_fd;

        /*打開gpio設備*/

        dev_fd=open(GPIO_DEVICE_FILENAME,O_RDWR|O_NONBLOCK);

        if(dev_fd==-1)

        {

        printf(Canntopengpiodevicefilen);

        exit(1);

        }

        while(1)

        {

        i=(i+1)%4;

        led_timer(dev_fd,i,1);

        beep_timer(dev_fd,1);

        }

        close(dev_fd);

        return0;

        }

        具體運行過程如下所示。首先編譯并加載驅動程序:

        $makeclean;make/*驅動程序的編譯*/

        $insmodgpio_drv.ko/*加載gpio驅動*/

        $cat/proc/devices/*通過這個命令可以查到gpio設備的主設備號*/

        $mknod/dev/gpioc2520/*假設主設備號為252,創建設備文件節點*/

        然后編譯并運行驅動測試程序:

        $arm-linux-gcc–ogpio_testgpio_test.c

        $./gpio_test

        運行結果為4個LED輪流閃爍,同時蜂鳴器以一定周期發出聲響。

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

        linux相關文章:linux教程


        蜂鳴器相關文章:蜂鳴器原理

        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 息烽县| 治多县| 定日县| 阿合奇县| 阳朔县| 门头沟区| 汶上县| 邵阳县| 台山市| 蓬溪县| 昭通市| 登封市| 太康县| 保德县| 伊吾县| 彭泽县| 五台县| 潼南县| 沧州市| 类乌齐县| 全南县| 逊克县| 息烽县| 故城县| 上虞市| 小金县| 衡水市| 辽阳市| 泰安市| 县级市| 健康| 乌鲁木齐市| 仁怀市| 阳春市| 龙里县| 冕宁县| 吉安县| 鄂尔多斯市| 广德县| 阜平县| 察雅县|