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

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

Denis
(@denis-5)
New Member

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

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

Цитата
Topic starter Размещено : 15.07.2021 19:01
Тэги темы
Aveal
(@aveal)
Illustrious Member Admin

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

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

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

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

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

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