查看: 7922|回复: 3

官方例程 ble_app_hrs 按键功能的实现在哪里?

[复制链接]
  • TA的每日心情
    奋斗
    2014-11-26 16:58
  • 签到天数: 34 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2014-2-28 13:23:18 | 显示全部楼层 |阅读模式
    分享到:
            最近想要往工程里添加“按键模块”函数,原例程“ble_app_hrs” 中是有这个功能的: button 0 就是用来唤醒CPU(芯片在广播一段时间之后会自动进入休眠)。于是我想把这个按键的功能改一改,却始终没有找到这个按键的 handler 函数在哪里!我只看到在main() 函数的开头有个buttons_init(); 但是里面只是做了简单的初始化,并没有给出  handler 函数 的回调地址。
            还请各位解答,不胜感激!
    回复

    使用道具 举报

    该用户从未签到

    发表于 2014-2-28 18:37:18 | 显示全部楼层
    static void buttons_init(void)
    {
        // Configure HR_INC_BUTTON_PIN_NO and HR_DEC_BUTTON_PIN_NO as wake up buttons and also configure
        // for 'pull up' because the eval board does not have external pull up resistors connected to
        // the buttons.
        static app_button_cfg_t buttons[] =
        {
            {HR_INC_BUTTON_PIN_NO, false, BUTTON_PULL, button_event_handler},
            {HR_DEC_BUTTON_PIN_NO, false, BUTTON_PULL, button_event_handler}  // Note: This pin is also BONDMNGR_DELETE_BUTTON_PIN_NO
        };
       
        APP_BUTTON_INIT(buttons, sizeof(buttons) / sizeof(buttons[0]), BUTTON_DETECTION_DELAY, false);
    }

    注意到上面按键初始化函数中的“button_event_handler”了吗?这个称之为“回调函数”。

    简单的理解就是,这个函数初始化按键后,系统会自动帮你检测按键的变化,如果有变化了,系统就回来调用“button_event_handler”。

    所以,你说的按键处理函数就在“button_event_handler”,main.c中找找就有了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-11-26 16:58
  • 签到天数: 34 天

    连续签到: 1 天

    [LV.5]常住居民I

     楼主| 发表于 2014-3-3 10:39:30 | 显示全部楼层
    nrf51822 发表于 2014-2-28 18:37
    static void buttons_init(void)
    {
        // Configure HR_INC_BUTTON_PIN_NO and HR_DEC_BUTTON_PIN_NO as w ...

    HI,
          我 PCA1001 文件夹下的同名例程中看到了你这段代码,但是  ...\nrf6310\ble\ble_app_hrs 例程下发现这两个函数体完全不一样呢?
    1. static void buttons_init(void)
    2. {
    3.     // Set Wakeup and Bonds Delete buttons as wakeup sources.
    4.     GPIO_WAKEUP_BUTTON_CONFIG(WAKEUP_BUTTON_PIN);
    5.     GPIO_WAKEUP_BUTTON_CONFIG(BONDMNGR_DELETE_BUTTON_PIN_NO);
    6. }   
    复制代码
    我的工程都是基于 nRF6310 -> ble_app_hrs 例程的(当时觉得这个比PCA1001那个做得更加完善一点),代码下载到芯片里,发现按键功能也是可用的,却不知在哪里实现的。
    Thanks for your attention.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2014-3-3 14:31:19 | 显示全部楼层
    我们的AKII开发板是兼容PCA10001的。
    nRF6310的按键和LED灯跟AKII不一样,要是想用它的代码就要修改他的头文件,否则按键和灯都是对不上的。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /5 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-12-21 19:26 , Processed in 0.133362 second(s), 21 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.