你好,
我在做一个项目。设备默认处于延长睡眠模式。当接收到连接到加速计设备的特定GPIO (PORT X, PIN Y)上的中断时,设备需要唤醒并发布定制数据。请建议需要配置GPIO接收中断和唤醒设备的步骤。
谢谢
另外,我想问另一个问题。设备的默认状态是扩展睡眠模式。每隔2分钟,设备在应用程序容易定时器中断后醒来,发布数据,然后进入睡眠。我还想在上一个查询中所述的任何GPIO上的中断(加速计中断)后唤醒设备,并发布数据。但是如果我正在调用arch_ble_ext_wakeup_on(),设备将只有在接收到外部中断之后才会唤醒。但我需要这两个事件来唤醒设备。请建议做这件事的方法。
嗨wisilica,
SDK中有一个ble_app_sleepmode示例,它演示了设备如何从特定的端口/引脚唤醒。如果我认为设备在启动不会广告但它将等待中断醒来,那么您应该设置在.app_on_set_dev_config_complete或中断醒来.app_on_db_init_complete(取决于你是否在你的设备使用一个数据库)。您可以检查这些函数,以便在user_app_adv_undirect_complete()函数中的user_sleepmode.c文件中的ble_app_sleepmode项目中设置唤醒中断。另外,不要忘记在peri_init()函数中正确配置gpio。
关于你的第二个查询,当设备得到一个外部中断,它醒来,检查是否有任何未决事件,然后它立即回到睡眠(因为没有什么可做)。因此,一旦设备获得中断,一旦它被处理(正如ble_app_sleepmode处理中断),那么你应该有你从传感器读取的数据。由于您有来自传感器的数据,您可以将这些数据放在广告结构中并启动广告过程。你不需要调用arch_ble_ext_wakeup_on()来通过外部中断唤醒设备,但即使你这样做了,你仍然可以使用定时器来唤醒。
由于MT_dialog
你好,
另外,我想问另一个问题。设备的默认状态是扩展睡眠模式。每隔2分钟,设备在应用程序容易定时器中断后醒来,发布数据,然后进入睡眠。我还想在上一个查询中所述的任何GPIO上的中断(加速计中断)后唤醒设备,并发布数据。但是如果我正在调用arch_ble_ext_wakeup_on(),设备将只有在接收到外部中断之后才会唤醒。但我需要这两个事件来唤醒设备。请建议做这件事的方法。
谢谢
嗨wisilica,
SDK中有一个ble_app_sleepmode示例,它演示了设备如何从特定的端口/引脚唤醒。如果我认为设备在启动不会广告但它将等待中断醒来,那么您应该设置在.app_on_set_dev_config_complete或中断醒来.app_on_db_init_complete(取决于你是否在你的设备使用一个数据库)。您可以检查这些函数,以便在user_app_adv_undirect_complete()函数中的user_sleepmode.c文件中的ble_app_sleepmode项目中设置唤醒中断。另外,不要忘记在peri_init()函数中正确配置gpio。
关于你的第二个查询,当设备得到一个外部中断,它醒来,检查是否有任何未决事件,然后它立即回到睡眠(因为没有什么可做)。因此,一旦设备获得中断,一旦它被处理(正如ble_app_sleepmode处理中断),那么你应该有你从传感器读取的数据。由于您有来自传感器的数据,您可以将这些数据放在广告结构中并启动广告过程。你不需要调用arch_ble_ext_wakeup_on()来通过外部中断唤醒设备,但即使你这样做了,你仍然可以使用定时器来唤醒。
由于MT_dialog