C언어,ARM

stm32 - WDT

안녕1999 2020. 6. 20. 22:30
STM32는 2가지 워치독을 가지고 있다.
IWDG는 예전의 방식. 일정시간마다 계속 와치독을 리셋해주어야한다.
WWDG는 특정 시간에만 와치독을 리셋할 수 있다.(보다 정밀한 시간 계획이 필요하다)

HAL 드라이버 코드가 잘 동작하지 않아서, 새로 작성.


#include "stm32f7xx_hal.h"
#include "stm32f7xx_hal_iwdg.h"

void WDG_Init(void)
{
	IWDG->KR=IWDG_KEY_ENABLE;
	IWDG->KR=IWDG_KEY_WRITE_ACCESS_ENABLE;
	IWDG->PR=IWDG_PRESCALER_256;//IWDG_PRESCALER_32 //리셋시간 조정용
	IWDG->RLR=1000;
	IWDG->KR=IWDG_KEY_RELOAD;
}

void WDG_reset(void)
{
	IWDG->KR=IWDG_KEY_RELOAD;
}