嗨对话框,
问题陈述
- 使用GPIO_REGISTERCALLBACK()寄存GPIO中断/ ISR,并检测在系统启动和运行时短按和长按按钮。
我尝试了什么
- 我正在使用此功能的SW_2(P0_6),因为当前已用于初始化BLE广告的WKUPCT_REGISTER_CALLBACK()。
- 我能够通过以下方法注册GPIO中断回调
- 我已在set_pad_functions()下配置GPIO并保留在gpio_reservations()中的GPIO。
- 如果按下SW_2,请在DA14583_PRODK上转动LED,然后再次按下,关闭LED。
void register_button_isr(void)
{
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);
}
观察
- 当系统处于活动模式时,即广播BLE Advertisement数据包,SW_2引脚不会生成ISR
- 如果我通过修改Blinky示例,我遵循相同的过程,一切都只是完美的
附加在下面(ble_examples.zip)是包含修改后的blinky示例和我在ble_all_in_one应用程序中添加的新文件的文件
仰望积极的回应。
提前感谢你
问候
dhruv shah
关键词:
设备:
嗨DHRUV11593,
它期望在系统处于活动模式时,您的项目无法正常工作,因为芯片在广告和连接间隔之间睡眠。SDK的Blinky示例不支持任何BLE功能,因此您可以使用ISR实现该功能。在BLE_ALL_IN_ONE项目的情况下,您应该使用唤醒控制器并使用与SW3类似的方式按下按钮。您将找到有关按钮配置的示例代码,以及如何执行此操作。
问候,pm_dialog