mx53 linux gpio 模拟matrix keypad

mx53 linux gpio 模拟matrix keypadmx53linux用gpio模拟matrixkeypad需要做的工作1、在配置内核驱动的时候添加gpiomatrixkeypad        DeviceDrivers—>                  Inputdevicesupport —>                           Keyboards —>

大家好,又见面了,我是你们的朋友全栈君。

mx53 linux 用gpio模拟matrix keypad需要做的工作

1、在配置内核驱动的时候添加 gpiomatrix keypad

         DeviceDrivers —>

                   Inputdevice support  —>

                            Keyboards  —> 

                                     <*>   GPIO driven matrix keypad support

 

2、在mx53_loco.c文件中添加代码

 

static const uint32_t mx53_keymap[] = {

         KEY(0,0, KEY_0),

//      KEY(0,1, KEY_A),

//      KEY(0,2, KEY_3),

//      KEY(0,3, KEY_5),

//      KEY(0,4, KEY_6),

//      KEY(0,5, KEY_7),

//      KEY(0,6, KEY_9),

//      KEY(1,0, KEY_9),

//      KEY(1,1, KEY_E),

//      KEY(1,2, KEY_4),

//      KEY(1,3, KEY_R),

//      KEY(1,4, KEY_Y),

//      KEY(1,5, KEY_8),

//      KEY(1,6, KEY_I),

//      KEY(2,0, KEY_TAB),

//      KEY(2,1, KEY_Q),

//      KEY(2,2, KEY_E),

//      KEY(2,3, KEY_T),

//      KEY(2,4, KEY_G),

//      KEY(2,5, KEY_U),

//      KEY(2,6, KEY_J),

};

 

static struct matrix_keymap_data mx53_keymap_data= {

         .keymap            = mx53_keymap,

         .keymap_size  = ARRAY_SIZE(mx53_keymap),

};

 

static const int mx53_row_gpios[] =

                   {GPIO_4_0};

static const int mx53_col_gpios[] =

                   {GPIO_4_1};

 

static struct matrix_keypad_platform_datamx53_pdata = {

         .keymap_data          = &mx53_keymap_data,

         .row_gpios                = mx53_row_gpios,

         .col_gpios                  = mx53_col_gpios,

         .num_row_gpios               = ARRAY_SIZE(mx53_row_gpios),

         .num_col_gpios                 = ARRAY_SIZE(mx53_col_gpios),

         .col_scan_delay_us = 10,

         .debounce_ms                   = 80,

//      .wakeup                     = 1,

         .active_low      = 1,

};

static struct platform_device mx53_device ={

         .name                = “matrix-keypad”,

         .id              = -1,

         .dev           = {

                   .platform_data= &mx53_pdata,

         },

};

static void __initmx53_add__matrix_keypad(void)

{

         platform_device_register(&mx53_device);

}

 

在static void __init mxc_board_init(void)函数中添加代码

mx53_add__matrix_keypad();

系统启动后,运行qt程序时,按下按键有如下打印消息

keycode is 48   unicode is 48 modifiers is 0  isPress is 1,autoRepeat is 0 
keycode is 48   unicode is 48 modifiers is 0  isPress is 0,autoRepeat is 0

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/146244.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • vs2010旗舰版密钥「建议收藏」

    vs2010旗舰版密钥「建议收藏」YCFHQ-9DWCY-DKV88-T2TMH-G7BHP企业版、旗舰版都适用vs2010旗舰版密钥

  • C# License

    C# License第一步:生成一组公钥和私钥,公钥用于你发布程序,私钥属于注册码生成。using(RSACryptoServiceProviderrsa=new RSACryptoServiceProvider())  {  stringpubkey=rsa.ToXmlString(false);  //公钥 stringprikey=rsa.ToXmlString(t

  • two bin system_system系统目录是什么

    two bin system_system系统目录是什么这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件, 在这个文件夹下的程序为系统默认的组件,自己安装的软件将不会出现在这里,而是\data\文件夹中。\system\app\AlarmClock.apk 闹钟\system\app\AlarmClock.odex\system\app\Browser.apk 浏览器\system\app\Browser.

    2022年10月10日
  • 美国地名大全(美国城市名称英文、中文)

    美国地名大全(美国城市名称英文、中文)

  • 精选30道Java笔试题解答

    精选30道Java笔试题解答都是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我一样参加各大IT校园招聘的同学们,纯考Java基础功底,老手们就不用进来了,免得笑话我们这些未出校门的孩纸们,但

  • mac Intrellij idea 的激活码【2021最新】

    (mac Intrellij idea 的激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号