feiyushenyou 2022-10-12 14:19 采纳率: 33.3%
浏览 32
已结题

gpio中断时发送按键消息

有个android项目有个功能,按压时发送一个按键消息给上层, 抬起时发送另一个按键消息给上层,模拟传统电话挂断和抬起接听的功能。
请问驱动怎么实现?dts怎么配置该gpio呢。

需要提供实现code.

  • 写回答

1条回答 默认 最新

  • 伍六七0804 2022-10-12 14:53
    关注
    
    gpio-keys {
            compatible = "gpio-keys";
            autorepeat;
    
            pinctrl-names = "default";
            pinctrl-0 = <&button_key>;
            
            answer {
                gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
                linux,code = <11>;
                label = "Key Answer";
                wakeup-source;
                debounce-interval = <50>;
            }; 
    };
    

    我不清楚题主用的什么平台,我之前做的事瑞芯微平台的,这个是按键的DTS写法。
    之后可以通过读/dev/input/event1来获取按键事件,具体对应哪个event还需要看你那边具体的平台
    读event1的方法可以用poll的方法去读。下面的代码片段中读到的ev.code和DTS中linux,code = <11>;这个值对应

    void input_key_cb(struct io_event *i_event)
    {
        struct input_event ev;
        struct key_state *key;
        int ret = -1;
        if (i_event->fd <= 0)
            return;
        
        ret = read(i_event->fd, &ev, sizeof(ev));
        if (ret != sizeof(ev))
        {
            slogn("Event from input is failed, ret : %d", ret);
            return;
        }
    
    
        switch (ev.code) {
            
        }
    
        return;
    }
    
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月13日
  • 修改了问题 10月12日
  • 创建了问题 10月12日

悬赏问题

  • ¥15 虚拟机检测,可以是封装好的DLL,可付费
  • ¥15 kafka无法正常启动(只启动了一瞬间会然后挂了)
  • ¥15 开发一个类似百度网盘的软件,在主页 文件列表点击进入文件夹,在文件夹里面还有文件夹,代码该怎么写?
  • ¥30 使用matlab将观测点聚合成多条目标轨迹
  • ¥15 Workbench中材料库无法更新,如何解决?
  • ¥20 如何推断此服务器配置
  • ¥15 关于github的项目怎么在pycharm上面运行
  • ¥15 内存地址视频流转RTMP
  • ¥100 有偿,谁有移远的EC200S固件和最新的Qflsh工具。
  • ¥15 有没有整苹果智能分拣线上图像数据