×
单片机 > 单片机程序设计 > 详情

STM32开发笔记45:看门狗驱动程序的移植

发布时间:2020-06-05 发布时间:
|

单片机型号:STM32F070F6P6


本文介绍将看门狗驱动程序移植到自己工程中的方法,本项目使用的是独立看门狗IWDG。


1、在STM32CubeMX中使能看门狗,如下图所示。



2、查看看门狗时钟。



3、对看门狗进行设置,这里主要的是设置IWDG down-counter reload value。IWDG counter clock prescaler为分频系数,我现在项目设置的IWDG的时钟是40KHz,所以分频后为40000/64=625Hz,我先在项目需要使用5秒的看门狗,则625*5=3125,就是IWDG down-counter reload value的数值。



4、在自己的工程中引入stm32f0xx_hal_iwdg.c驱动程序。



5、对stm32f0xx_hal_conf.h文件进行设置,使能功能宏HAL_IWDG_MODULE_ENABLED  。


6、在工程中建立iwdg.cpp和iwdg.h文件。


7、拷贝下列程序到iwdg.h中。


#ifndef IWDG_H_

#define IWDG_H_

 

#ifdef __cplusplus

extern "C"{

 

class CIwdg

{

public:

IWDG_HandleTypeDef hIwdg;

public:

CIwdg(void);

void Refresh(void);

};

 

}

#endif

#endif

8、拷贝下列程序到iwdg.cpp中。


#include "include.h"

 

CIwdg::CIwdg(void)

{

  this->hIwdg.Instance = IWDG;

  this->hIwdg.Init.Prescaler = IWDG_PRESCALER_64;

  this->hIwdg.Init.Window = 4095;

  this->hIwdg.Init.Reload = 3125;

  if (HAL_IWDG_Init(&this->hIwdg) != HAL_OK)

  {

    Target.ErrorHandler(__FILE__, __LINE__);

  }

}

 

void CIwdg::Refresh(void)

{

  HAL_IWDG_Refresh(&this->hIwdg);

}

9、至此,移植完成,调用Refresh成员函数进行喂狗即可。





『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32中断向量表的位置.重定向