GPIO输出高低电平的驱动源代码资料_第1页
GPIO输出高低电平的驱动源代码资料_第2页
GPIO输出高低电平的驱动源代码资料_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一个GPIO输出高低电平的驱动源代码 2009-08-11 一个GPIO的驱动,输出高低电平JDg电子资料网驱动源代码:GPIO_DRIVER.CJDg电子资料网#include <linux/fs.h>JDg电子资料网/#include <linux/iobuf.h>JDg电子资料网#include <linux/major.h>JDg电子资料网#include <linux/blkdev.h>JDg电子资料网#include <linux/capability.h>JDg电子资料网#include <linux/smp_lo

2、ck.h>JDg电子资料网#include <asm/uaccess.h>JDg电子资料网#include <asm/hardware.h>JDg电子资料网#include <asm/arch/AT91RM9200.h>JDg电子资料网#include <linux/vmalloc.h>JDg电子资料网#include <linux/delay.h>JDg电子资料网#include <linux/kernel.h>JDg电子资料网#include <linux/init.h>JDg电子资料网#includ

3、e <linux/config.h>JDg电子资料网#include <linux/module.h>JDg电子资料网#include <linux/fs.h>JDg电子资料网#include <linux/ioport.h>JDg电子资料网#include <linux/sched.h>JDg电子资料网#include <asm/io.h>JDg电子资料网#include <asm/arch/gpio.h>JDg电子资料网#include <linux/delay.h>JDg电子资料网MODULE

4、_LICENSE("GPL");JDg电子资料网#define IOPORT_MAJOR 220 /定义主设备号JDg电子资料网typedef char ioport_device_t;JDg电子资料网static ioport_device_t gpio_devices257;JDg电子资料网#define IOWRITE                1;JDg电子资料网#define IOCLEAR  

5、;              2;JDg电子资料网static int  gpio_open(struct inode *inode,struct file *filp)JDg电子资料网JDg电子资料网        int minor;JDg电子资料网        minor = MINOR(inode->i

6、_rdev);JDg电子资料网        at91_set_gpio_output(AT91_PIN_PB3,0 );JDg电子资料网        gpio_devicesminor+;JDg电子资料网        return 0;JDg电子资料网JDg电子资料网static int  gpio_release(struct inode *inode,struct f

7、ile *filp)JDg电子资料网JDg电子资料网        int minor;JDg电子资料网        minor = MINOR(inode->i_rdev);JDg电子资料网        if(gpio_devicesminor)JDg电子资料网         

8、0;      gpio_devicesminor-;JDg电子资料网        return 0;JDg电子资料网JDg电子资料网static int  gpio_ctl_ioctl(struct inode *inode, struct file *filp,JDg电子资料网unsigned int command, unsigned long arg)JDg电子资料网JDg电子资料网      &

9、#160; int err = 0;JDg电子资料网        int minor = MINOR(inode->i_rdev);JDg电子资料网        JDg电子资料网        switch(command)JDg电子资料网        JDg电子资料网   &

10、#160;    case IOWRITE:JDg电子资料网                err = at91_set_gpio_value(AT91_PIN_PB3,1);/输出1高电平JDg电子资料网                break;JDg电子资料网&#

11、160;       case IOCLEAR:JDg电子资料网                err = at91_set_gpio_value(AT91_PIN_PB3,0);/输出0低电平JDg电子资料网               

12、 break;JDg电子资料网JDg电子资料网        return err;JDg电子资料网JDg电子资料网static struct file_operations gpio_ctl_fops=JDg电子资料网    owner:                THIS_MODULE,JDg电子资料网   &

13、#160;    ioctl:                gpio_ctl_ioctl,/成员初始化;.a=1与a:1; JDg电子资料网        open:               

14、gpio_open,JDg电子资料网        release:        gpio_release,JDg电子资料网;JDg电子资料网static int _init gpio_init(void)JDg电子资料网JDg电子资料网        register_chrdev(IOPORT_MAJOR ,"gpiotest",&gpio_ctl_fo

15、ps);JDg电子资料网        return 0;JDg电子资料网JDg电子资料网static void _exit gpio_exit(void)JDg电子资料网JDg电子资料网        unregister_chrdev(IOPORT_MAJOR,"gpiotest"); JDg电子资料网        return 0;JDg电子资料网JDg电子资

16、料网module_init(gpio_init);JDg电子资料网module_exit(gpio_exit);JDg电子资料网测试程序:JDg电子资料网#include <stdio.h>JDg电子资料网#include <stdlib.h>JDg电子资料网#include <sys/ioctl.h>JDg电子资料网#include <unistd.h>JDg电子资料网#include <sys/mman.h>JDg电子资料网#include <sys/types.h>JDg电子资料网#include <sys/s

17、tat.h>JDg电子资料网#include <fcntl.h>JDg电子资料网#define DEVICE_GPIOTEST                "/dev/gpiotest"JDg电子资料网#define IOWRITE               

18、; 1;JDg电子资料网#define IOCLEAR                2;JDg电子资料网int main()JDg电子资料网JDg电子资料网        int fd;JDg电子资料网        int val=-1;JDg电子资料网    &#

19、160;   JDg电子资料网        if( (fd=open(DEVICE_GPIOTEST,O_WRITE | O_NONBLOCK) < 0 )JDg电子资料网        JDg电子资料网                perror("can not op

20、en device");JDg电子资料网                exit(1);JDg电子资料网        JDg电子资料网        JDg电子资料网        while(1)JDg电子资料网 &

21、#160;      JDg电子资料网                printf("0:set,1:clear,2:quit;");JDg电子资料网                scanf("%d",&am

22、p;val);JDg电子资料网                JDg电子资料网                if(val=0)JDg电子资料网             

23、           ioctl(fd,IOWRITE,0);JDg电子资料网                else if(val=1)JDg电子资料网                        ioctl(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论