嗨对话框据说BLE核心总是由广告/连接事件等异步事件唤醒。我如何能立即唤醒BLE核心而不等待异步事件。
试试这个:
if (GetBits16(CLK_RADIO_REG, BLE_ENABLE) == 0) {// BLE clock is off . if (GetBits16(CLK_RADIO_REG, BLE_ENABLE) == 0) {// BLE时钟关闭SetBits16 (GP_CONTROL_REG BLE_WAKEUP_REQ 1);}
嗨Joacimwe非常感谢。我希望得到一个按钮按下事件。所以我启用了唤醒计时器。然后像下面这样配置GPIO:空白GPIO_reservations(空白){...RESERVE_GPIO (PUSH_BUTTON GPIO_PORT_1、GPIO_PIN_3 PID_GPIO);}空白set_pad_functions(空白){...GPIO_ConfigurePin (GPIO_PORT_1 GPIO_PIN_3、INPUT_PULLUP PID_GPIO,假);}然后我调用这个函数:空白app_button_enable(空白){wkupct_register_callback (app_button_press_cb);如果(GPIO_GetPinStatus (GPIO_PORT_1 GPIO_PIN_3))x800 x800 wkupct_enable_irq (0, 0, 1, 0);}我重写了app_button_press_cb因数像下图:空白app_button_press_cb(空白){if (GetBits16(CLK_RADIO_REG, BLE_ENABLE) == 0) // BLE时钟关闭{SetBits16 (GP_CONTROL_REG BLE_WAKEUP_REQ 1);}app_button_enable ();ke_msg_send_basic (APP_WAKEUP_MSG TASK_APP, NULL);}现在,当外部中断发生时,我可以进入app_button_press_cb函数。但是我还是收不到APP_WAKEUP_MSG在TASK_APP事件。注意:我定义睡眠模式如下#定义CFG_EXT_SLEEP# undef CFG_DEEP_SLEEP
你能帮我吗?
嗨Sklin,
我很惊讶你的代码不能用。
如果您尝试保留以下两行呢?
app_button_enable ();ke_msg_send_basic (APP_WAKEUP_MSG TASK_APP, NULL);
如果这仍然不起作用,我将在下面添加一个while循环SetBits16(GP_CONTROL_REG, BLE_WAKEUP_REQ, 1)以确保GetBits16(CLK_RADIO_REG, BLE_ENABLE)返回1。
试试这个:
if (GetBits16(CLK_RADIO_REG, BLE_ENABLE) == 0) {// BLE clock is off . if (GetBits16(CLK_RADIO_REG, BLE_ENABLE) == 0) {// BLE时钟关闭
SetBits16 (GP_CONTROL_REG BLE_WAKEUP_REQ 1);
}
嗨Joacimwe
非常感谢。
我希望得到一个按钮按下事件。所以我启用了唤醒计时器。然后像下面这样配置GPIO:
空白GPIO_reservations(空白)
{
...
RESERVE_GPIO (PUSH_BUTTON GPIO_PORT_1、GPIO_PIN_3 PID_GPIO);
}
空白set_pad_functions(空白)
{
...
GPIO_ConfigurePin (GPIO_PORT_1 GPIO_PIN_3、INPUT_PULLUP PID_GPIO,假);
}
然后我调用这个函数:
空白app_button_enable(空白)
{
wkupct_register_callback (app_button_press_cb);
如果(GPIO_GetPinStatus (GPIO_PORT_1 GPIO_PIN_3))
x800 x800 wkupct_enable_irq (0, 0, 1, 0);
}
我重写了app_button_press_cb因数像下图:
空白app_button_press_cb(空白)
{
if (GetBits16(CLK_RADIO_REG, BLE_ENABLE) == 0) // BLE时钟关闭
{
SetBits16 (GP_CONTROL_REG BLE_WAKEUP_REQ 1);
}
app_button_enable ();
ke_msg_send_basic (APP_WAKEUP_MSG TASK_APP, NULL);
}
现在,当外部中断发生时,我可以进入app_button_press_cb函数。
但是我还是收不到APP_WAKEUP_MSG在TASK_APP事件。
注意:我定义睡眠模式如下
#定义CFG_EXT_SLEEP
# undef CFG_DEEP_SLEEP
你能帮我吗?
嗨Sklin,
我很惊讶你的代码不能用。
如果您尝试保留以下两行呢?
app_button_enable ();
ke_msg_send_basic (APP_WAKEUP_MSG TASK_APP, NULL);
如果这仍然不起作用,我将在下面添加一个while循环SetBits16(GP_CONTROL_REG, BLE_WAKEUP_REQ, 1)以确保GetBits16(CLK_RADIO_REG, BLE_ENABLE)返回1。