美文网首页
MT2503D 按键编程

MT2503D 按键编程

作者: tianxiaoMCU | 来源:发表于2018-12-28 17:43 被阅读0次
    方法一

    所有按键的消息都经过dev_key_handle进行处理,所以一个简单粗暴的方法就是将自己的按键处理函数添加到这里:

    static void dev_key_handle(dev_key_evt_struct *dev_evt_p)
    {
      /*----------------------------------------------------------------*/
      /* Local Variables                                                */
      /*----------------------------------------------------------------*/
      mmi_key_evt_struct  mmi_key_event_frm;
      dev_key_evt_struct  dev_evt[4];
      U8 len = 0;
      U32 i;
      
      /*----------------------------------------------------------------*/
      /* Code Body                                                      */
      /*----------------------------------------------------------------*/
      MMI_TRACE(PLUTO_FW_TRC_KEY, TRC_MMI_FRM_KEY_DEVICE_KEY_INFO, dev_evt_p->device_key_code, dev_evt_p->device_key_type);
      pre_process_dev_evt(dev_evt_p, dev_evt, &len);
      for (i = 0; i < len; i++)
      {
        /* Init the local data */
        mmi_key_event_frm.mmi_key_code = KEY_INVALID;
        mmi_key_event_frm.mmi_key_type = MAX_KEY_TYPE;
        mmi_key_event_frm.cvt_code     = KEY_INVALID;
        mmi_key_event_frm.is_clear     = MMI_FALSE;        
        
        /* get framework level mmi key events */
        get_mmi_key_events(&dev_evt[i], &mmi_key_event_frm);
    
        if( MMI_TRUE == is_valid_mmi_key_event(
            mmi_key_event_frm.mmi_key_code,
            mmi_key_event_frm.mmi_key_type))
        {
          /* 在这里添加自己的按键处理函数 */
    
          mmi_key_handle(&mmi_key_event_frm);
        }
      }
    }
    
    方法二

    利用void SetKeyHandler( FuncPtr funcPtr, U16 keyCode, U16 keyType );注册按键事件与相应的处理函数,按键触发时执行相应的函数。这种方式相对于方式一,就不用破坏非业务代码了。

    相关文章

      网友评论

          本文标题:MT2503D 按键编程

          本文链接:https://www.haomeiwen.com/subject/scoslqtx.html