nrf52832 --- 看门狗

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.添加看门狗驱动

nrf52832 --- 看门狗_第1张图片


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

   对应添加keil的的路劲

  2.开启看门狗功能的宏

  nrf52832 --- 看门狗_第2张图片

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

nrf52832 --- 看门狗_第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 了  根据自己的需要设置看门狗超时




你可能感兴趣的:(nordic,nrf52832)