⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
2个职位/ 0个新职位
最后发表
dhruv11593
离线
最后看到:2年9个月前
加入:2018-06-08 18:04
GPIO中断检测

嗨,对话框中,

问题陈述
-使用GPIO_RegisterCallback()注册一个GPIO中断/ISR,并检测当系统正常运行时是否短按和长按按钮。

我试着什么

  • 我使用SW_2 (P0_6)来实现这个功能,因为SW_3目前被用于初始化BLE通告的wkupct_register_callback()。
  • 我可以通过下面的方法注册GPIO中断回调
  • 空白register_button_isr(空白)

    NVIC_DisableIRQ (GPIO1_IRQn);
    //为按下的中断设置isr回调
    GPIO_RegisterCallback (GPIO1_IRQn push_button_callback);
    //按钮输入
    GPIO_EnableIRQ(GPIO_PORT_0, GPIO_PIN_6, GPIO1_IRQn, true, true, 0);

  • 我已经在set_pad_functions()下配置了GPIO,并在GPIO_reservations()中保留了GPIO。
  • 如果按下SW_2,则打开DA14583_ProDK的LED,再次按下时关闭LED。

观察

  • 当系统处于主动模式(广播BLE通告报文)时,ISR不是由SW_2引脚生成的
  • 如果我通过修改Blinky示例遵循同样的过程,那么一切都会完美地运行

下面(ble_examples.zip)是包含修改后的Blinky示例和我在ble_all_in_one应用程序中添加的新文件的文件

期待一个积极的回应。

先谢谢你

问候
Dhruv沙

设备:
PM_Dialog
离线
最后看到:10小时46分钟前
工作人员
加入:2018-02-08 11:03
嗨dhruv11593,

嗨dhruv11593,

当系统处于活动模式时,您的项目不工作是可以预期的,因为芯片在广告和连接间隔之间进入睡眠状态。SDK的Blinky示例不支持任何BLE功能,所以可以使用ISR实现。在ble_all_in_one项目中,您应该使用唤醒控制器,并以与SW3类似的方式实现按钮按下。您可以在附件中找到一个关于按钮配置的示例代码,以及如何进行配置。

问候,PM_Dialog