nrf52832 --- 看门狗

nordic nrf52832 专栏收录该内容
7 篇文章 0 订阅

1.目的

     看门狗

2.分析

   在实际项目中经常要用到看门狗 ,防止系统死机

3.平台:

协议栈版本:nRF52_SDK_0.9.2

编译软件:keil 5.12

硬件平台:pca10036

例子:SDK12\examples\ble_central_and_peripheral\experimental\ble_app_hrs_rscs_relay\pca10040\s132\arm4

4.步骤

  1.添加看门狗驱动



   nrf_drv_wdt.c在路径 \components\drivers_nrf\wdt 

   对应添加keil的的路劲

  2.开启看门狗功能的宏

  

3.建立一个看门狗的文件夹 并添加到工程里面,如下图



wdog.c的内容如下

#include "wdog.h"



nrf_drv_wdt_channel_id m_channel_id;
/**
 * @brief WDT events handler.
 */
void wdt_event_handler(void)
{
    

    //NOTE: The max amount of time we can spend in WDT interrupt is two cycles of 32768[Hz] clock - after that, reset occurs
}


void WDT_Init(void)
{
	  uint32_t err_code = NRF_SUCCESS;
	    //Configure WDT.
    nrf_drv_wdt_config_t config = NRF_DRV_WDT_DEAFULT_CONFIG;
    err_code = nrf_drv_wdt_init(&config, wdt_event_handler);
    APP_ERROR_CHECK(err_code);
    err_code = nrf_drv_wdt_channel_alloc(&m_channel_id);
    APP_ERROR_CHECK(err_code);
    nrf_drv_wdt_enable();
}





wdog.h文件如下

#ifndef __WDOG__H
#define __WDOG__H





#include "app_error.h"
#include "nrf_drv_wdt.h"



void WDT_Init(void);

#endif




在主函数里面初始化看门狗



这样 看门狗就完成了,,但是注意下载进去 程序经常复位

哪个是我们设置看门狗的溢出时间太短了




这样就ok 了  根据自己的需要设置看门狗超时




  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值