5. Linux驱动中断编程: 驱动按键

(有点像线程申请)
1. 编写处理中断的函数---申请中断
   int request_irq(unsigned int irq,irq_handler_t handler,unsigned long flags,const char * name,void * dev)

    参数1:中断的号码,按键
          a. 外部中断--IRQ_EINT(号码)--irqs.h
          b. 内部中断 mach/irqs.h   plat/irqs.h
             #define IRQ_UART0      S5P_IRQ_VIC1(10)
             #define IRQ_UART1      S5P_IRQ_VIC1(11)
          c. gpio_to_irq();如果某个gpio口有中断功能,就用这个获取到

    参数2:中断的处理方法
          irqreturn_t (*irq_handler_t)(int, void *);
          参数1:表示当前的中断号码
          参数2:request_irq第五个传参
          实例:
             irqreturn_t   key_irq_handle(int irqno, void *devid)
             {
                return IRQ_HANDLED;
             } 

    参数3:触发方式:内部触发,上升下降沿触发,高低电平触发
                #define IRQF_TRIGGER_NONE     0x00000000
                #define IRQF_TRIGGER_RISING   0x00000001
                #define IRQF_TRIGGER_FALLING  0x00000002
                #define IRQF_TRIGGER_HIGH     0x00000004
                #define IRQF_TRIGGER_LOW      0x00000008
    参数4: 字符串,自定义, 给用户查看 /proc/interrupts
    参数5:传递给参数2的数据,用于区分共享同一中断处理函数的不同的中断
    返回值: 非0表示出错


        释放中断:
                free_irq(unsigned int irq,void * dev_id)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值