Страница 1 из 1

STEND-BY в F030F4P6

Добавлено: Ср мар 04, 2026 07:21:15
aleksey chilov
Не могу зайти в спящий режим.
Смотрел по табличке в рефмануале но не входит.
Что не так не могу понять. Подскажите если кто делал проект
с таким режимом.

Код: Выделить всё

void POWER_OFF(bool *Flag){
POWER[1] = 0x00;
if(*Flag){
lcd1602_Clean_Text();                     // Очистить экран
SEND_FM(POWER,FM_TUNER, 2);              //  Выключить тюнер
SCB->SCR |= (1 << 2);                   //   SLEEPDEEP "В программинг мануле"
SET_BIT(PWR->CR, PWR_CR_PDDS);         //    Перейти в режим ожидания
CLEAR_BIT(PWR->CSR, PWR_CSR_EWUP1);   //     Отключить вывод PWR_WAKEUP "PA0"
SET_BIT(PWR->CR, PWR_CR_CWUF);       //      Сбросить флаг пробуждения
SET_BIT(PWR->CSR, PWR_CSR_EWUP1);   //       Подкключить вывод PWR_WAKEUP "PA0"
*Flag = RESET;                     //        Сбросить флаг
}
}

Re: STEND-BY в F030F4P6

Добавлено: Ср мар 04, 2026 09:51:10
AlanDrakes

Код: Выделить всё

<...>
	// Access to RTC, RTC Backup and RCC CSR registers enabled + Deep power down mode on __WFI()
// 	PWR->CR |= PWR_CR_DBP | PWR_CR_LPSDSR | PWR_CR_VOS_0 | PWR_CR_VOS_1;
	PWR->CR |= PWR_CR_DBP | PWR_CR_PDDS | PWR_CR_VOS_0 | PWR_CR_VOS_1;
	// Clear [Wakeup] flag
	PWR->CR |= PWR_CR_CWUF;
	RTC->ISR &= ~RTC_ISR_WUTF;
<...>
__WFI(); // <- Вот эта инструкция в итоге отправляет ядро в сон.

Re: STEND-BY в F030F4P6

Добавлено: Ср мар 04, 2026 16:06:41
aleksey chilov
Спасибо!
Я разобрался. Сделал чуть по другому но суть та же.
Спасибо за ответ! Сейчас всё работает как нужно!