打印
[CC2640]

CC2640R2f 看门狗

[复制链接]
1070|25
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
coshi|  楼主 | 2020-2-2 16:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在TI的官方例程中就有看门狗的用法,例如:

C:\ti\simplelink_cc2640r2_sdk_2_40_00_32\examples\rtos\CC2640R2_LAUNCHXL\drivers\watchdog

这是我的SDK目录下的看门狗工程,

因为官方已经封装好了代码,所以在我们使用 看门狗的时候,直接调用即可,

头文件

#include <ti/drivers/Watchdog.h>

函数

    Watchdog_init();

    /* Open a Watchdog driver instance */
    Watchdog_Params_init(&params);
    params.callbackFxn = (Watchdog_Callback) watchdogCallback;
    params.debugStallMode = Watchdog_DEBUG_STALL_ON;
    params.resetMode = Watchdog_RESET_ON;

    watchdogHandle = Watchdog_open(Board_WATCHDOG0, &params);
    if (watchdogHandle == NULL) {
        /* Error opening Watchdog */
        while (1) {}
    }



还需要一个看门狗回调函数

void watchdogCallback(uintptr_t watchdogHandle)
{
    /*
     * If the Watchdog Non-Maskable Interrupt (NMI) is called,
     * loop until the device resets. Some devices will invoke
     * this callback upon watchdog expiration while others will
     * reset. See the device specific watchdog driver documentation
     * for y**ice.
     */
    while (1) {}
}

以上函数就开启了看门狗,使用:

Watchdog_clear(watchdogHandle);

清楚看门狗计数器,这种模式下的看门狗是重启的,

例如说:想让看门狗报警十次再重启设备,可以修改参数

params.resetMode = Watchdog_RESET_ON;

typedef enum Watchdog_ResetMode_ {
    Watchdog_RESET_OFF, /*!< Timeouts generate interrupts only */
    Watchdog_RESET_ON   /*!< Generates reset after timeout */
} Watchdog_ResetMode;

修改成

params.resetMode = Watchdog_RESET_OFF;

则看门狗就成中断函数,然后在看门狗回调函数里面加上

    Watchdog_init();
    /* Create and enable a Watchdog with resets disabled */
    Watchdog_Params_init(&params);
    params.callbackFxn = (Watchdog_Callback)watchdogCallback;
    params.resetMode = Watchdog_RESET_OFF;
    watchdogHandle = Watchdog_open(Board_WATCHDOG0, &params);

//---------------看门狗回调---------------

void watchdogCallback(uintptr_t unused)
{

    /* Clear watchdog interrupt flag */
    Watchdog_clear(watchdogHandle);

    static int WDT_flag = 0;
    if(WDT_flag++ > 10){
        SystemReset();//重启函数
    }
    /* Insert timeout handling code here. */
}


使用特权

评论回复

相关帖子

沙发
kxsi| | 2020-3-1 11:48 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
板凳
nawu| | 2020-3-1 12:10 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
地板
qcliu| | 2020-3-1 12:14 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
5
tfqi| | 2020-3-1 12:18 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
6
wiba| | 2020-3-1 12:20 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
7
10299823| | 2020-3-6 16:03 | 只看该作者
蓝牙模块可以用来传输音频文件吗?

使用特权

评论回复
8
jimmhu| | 2020-3-6 16:03 | 只看该作者
CC2640是TI可以支持BT4.1及以上的协议栈  

使用特权

评论回复
9
lihuami| | 2020-3-6 16:03 | 只看该作者
看门狗怎么配置呢

使用特权

评论回复
10
xiaoyaozt| | 2020-3-6 16:04 | 只看该作者
不错的资料。           

使用特权

评论回复
11
uptown| | 2020-3-6 16:04 | 只看该作者
cc2650支持多个标准   

使用特权

评论回复
12
cehuafan| | 2020-3-6 16:04 | 只看该作者
cc2640支持蓝牙BLE4.1协议。   

使用特权

评论回复
13
usysm| | 2020-3-6 16:05 | 只看该作者
在烧写CC2640的时候,需要把MAC地址任意修改,可以吗

使用特权

评论回复
14
jkl21| | 2020-3-6 16:05 | 只看该作者
如何CC2640修改广播的名字

使用特权

评论回复
15
wwppd| | 2020-3-6 16:05 | 只看该作者
这个还需要喂狗吗        

使用特权

评论回复
16
maqianqu| | 2020-3-6 16:05 | 只看该作者
支持蓝牙5.0还是支持4.2      

使用特权

评论回复
17
jkl21| | 2020-3-6 16:06 | 只看该作者
应该选哪个协议栈   

使用特权

评论回复
18
10299823| | 2020-3-6 16:06 | 只看该作者
CC2541是一款针对 低能耗以及私有 2.4-GHz 应用的功率优化的真正片载系统 (SoC) 解决方案

使用特权

评论回复
19
usysm| | 2020-3-6 16:06 | 只看该作者
如何使用cc2640来做ibeacon?  

使用特权

评论回复
20
jimmhu| | 2020-3-6 16:06 | 只看该作者
也是业界唯一以ARM Cortex-M3+M0+16bit协处理器为核心架构的SOC芯片

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

95

主题

3301

帖子

4

粉丝