Top.Mail.Ru
Уведомления
Очистить все

[Решено] Причина перезапуска микроконтроллера

(@denis-5)
New member

Добрый день, уважаемые коллеги, подскажите, есть ли способ определить произошло ли срабатывание вочдога IWDG при последнем перезапуске контроллера. То есть при включении контроллера я бы хотел иметь возможность понять причину предшествовавшего перезапуска.

Заранее всех откликнувшихся благодарю!

Цитата
Создатель темы Размещено : 15.07.2021 19:01
Aveal
(@aveal)
Top level Admin

Если перезапуск был из-за срабатывания IWDG, то в регистре RCC->CSR будет установлен бит IWDGRSTF. При включении надо его проверять и сбрасывать вручную - установив бит RMVF в этом же регистре RCC->CSR.

ОтветитьЦитата
Размещено : 21.07.2021 11:29
tech
 tech
(@tech)
Level 3

С использованием HAL может выглядеть так:

if (READ_BIT(RCC->CSR, RCC_CSR_IWDGRSTF) != RESET)
{
	// Здесь свой код
	SET_BIT(RCC->CSR, RCC_CSR_RMVF);
}
ОтветитьЦитата
Размещено : 21.07.2021 14:08
(@denis-5)
New member

@tech @aveal спасибо, за пример в частности 😊 

ОтветитьЦитата
Создатель темы Размещено : 21.07.2021 18:00
Поделиться: