930电子网

 找回密码
 立即注册
艾克姆科技推出最新产品STC32G12K128开发板
查看: 258|回复: 3

使用蓝牙协议栈时,看门狗功能无法正常使用

[复制链接]

4

主题

11

帖子

81

积分

注册会员

Rank: 2

积分
81
发表于 2024-12-27 10:01:15 | 显示全部楼层 |阅读模式
1、不使用蓝牙协议栈,看门狗功能正常。
2、按照例程“实验16-1:WDT”,将看门狗添加到使用了蓝牙协议栈的工程中,有如下问题
(1)按照下面的写法,看门狗不触发
int main(void)
{
     。。。
    wdt_init();
    ble_stack_init();
   gap_params_init();
   gatt_init();
    services_init();
    advertising_init();
    conn_params_init();
    advertising_start(erase_bonds);
   
    for(;;)
    {
       …
    }
}
(2)按照下面的写法,看门狗可以触发,但喂狗不生效
int main(void)
{
     。。。
    wdt_init();
    ble_stack_init();
   gap_params_init();
   gatt_init();
    //services_init();  //这句影响开门狗无法触发
    //advertising_init();
    //conn_params_init();
    //advertising_start(erase_bonds);
   
    for(;;)
    {
       …
       nrfx_wdt_channel_feed(m_channel_id); //喂狗
    }
}

回复

使用道具 举报

52

主题

357

帖子

6557

积分

版主

Rank: 7Rank: 7Rank: 7

积分
6557
发表于 2024-12-27 11:19:03 | 显示全部楼层
在循环里面,没有事件发生的时候,系统睡眠了,所以无法喂狗,可以尝试 开一个APP定时器喂狗。
回复 支持 反对

使用道具 举报

4

主题

11

帖子

81

积分

注册会员

Rank: 2

积分
81
 楼主| 发表于 2024-12-27 16:29:59 | 显示全部楼层
在定时器里喂狗,也是不起作用
回复 支持 反对

使用道具 举报

4

主题

11

帖子

81

积分

注册会员

Rank: 2

积分
81
 楼主| 发表于 2024-12-30 14:21:32 | 显示全部楼层
原因找到了。WDT的动作配置项我给设置成0了,设置成1或9就正常了。因为我的程序运行一段时间后会主动进入sytemoff深度睡眠模式,不想在深度睡眠时被看门狗唤醒,所以设置成了0。
配置项中SLEEP应该指的是没有事件发生时,系统主动进入的休眠状态,而不是sytemoff模式。
// <1=> Run in SLEEP, Pause in HALT
// <8=> Pause in SLEEP, Run in HALT
// <9=> Run in SLEEP and HALT
// <0=> Pause in SLEEP and HALT
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|官方淘宝店|930电子网 ( 皖ICP备16000695号-2 )

GMT+8, 2025-1-18 09:56 , Processed in 0.066576 second(s), 22 queries .

快速回复 返回顶部 返回列表