嗨,我做了自己无数的项目,对ext有一些问题。睡眠模式
我从无编辑项目中实现了函数(完成)准备睡觉并醒来
我的问题是我想把ble放入ext。睡眠+睡眠= 1
它应该自动唤醒1小时。
我找到了:
#define cfg_max_sleep_duration_periodic_wakeup_ms 500 // 0.5s
和
#define cfg_max_sleep_duration_external_wakeup_ms 10000 // 10s
所以我认为我应该将这一点设置为1H表示3600000才能为1H。
然后,如果我发送命令+睡眠,它会睡1小时
但我应该另外删除什么吗?
就像来自UART的中断,因为没有任何内容。ble(pan1740)是独立的。
wkupct_register_callback(user_wakeup);
//指定IO引脚,极性,事件数和计数器IRQ的脱嘴
wkupct_enable_irq.
(
wkupct_pin_select(UART2_RX_GPIO_PORT,UART2_RX_GPIO_PIN),// UART RX
wkupct_pin_polarity(Uart2_rx_gpio_port,uart2_rx_gpio_pin,wkupct_pin_polarity_low),//极性低
1,//事件数量
0 // demouning time = 0ms
);
我应该弥补wkupct_enable_irq吗?唤醒自动唤醒user_wakeup?
设备:
嗨gert186,
我认为你已经误解了一些关于无附件和580如何运作的事情。cfg_max_sleep_duration_external_wakeup_ms是一个#define,它将确定设备的周期性唤醒,其默认值为10秒,因此如果设备没有设备将保持在睡眠模式最多10秒,那么它将唤醒并返回睡觉的睡眠。在无附庸的例子中,如果你只是停止广告并睡觉,你将能够定期看到设备在10秒内醒来,然后回去睡眠(你有外部唤醒功能,即使你放置1小时在源代码中的无附件,您希望看到设备广告您还应该在设备唤醒时立即实现一个启动广告功能,因此您不会通过命令执行此操作。您必须在设备从中定期唤醒时立即附加将要执行的代码。从外部事件和BLE事件中唤醒是不同的功能,您可以同时拥有两个。因此,为了在无附件中实现类似的东西,您将必须在.app_on_ble_powered和.app_ging_to_sleep函数中附加一些代码:
在App_On_ble_power后附加以下函数,以便从定期唤醒时可以检查ADV_ON_WAKEUP(额外变量是否应检查它是否应该启动广告或不开始)标志,APP_ON_BLE_POWERED是每次执行的回调设备定期醒来:
ARCH_MAIN_LOOP_CALLBACK_RET_T USER_ON_BLE_POWERED(void)
{
if(adv_on_wakeup)
{
user_advertise();
adv_on_wakeup = 0;
}
返回goto_sleep;
}
并在.app_ging_to_sleep中附加以下函数,以便在睡觉时设置该标志,并且您不再通告。
void user_on_ging_to_sleep(sleep_mode_t睡眠)
{
if(dodeless_env.gap_actity ==空闲)
adv_on_wakeup = 1;
}
使用上述功能将使您在定期唤醒时立即进入永久睡眠并启动广告。
关于配置定期唤醒,请看看以下票证,因为该机制存在故障。
https://support.dialog-semicondiondiondum/forums/post/dialog-smartbond-bl ...
此外,如果您想要这种功能,我不确定无附件将是您项目的适当基础,因为它是一个项目,允许您使用来自UART接口的命令编程设备。
谢谢mt_dialog.
完美的!谢谢