STEND-BY в F030F4P6

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
aleksey chilov
Нашел транзистор. Понюхал.
Сообщения: 167
Зарегистрирован: Вс мар 27, 2022 09:38:17

STEND-BY в F030F4P6

Сообщение 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;                     //        Сбросить флаг
}
}
Реклама
Аватара пользователя
AlanDrakes
Прорезались зубы
Сообщения: 236
Зарегистрирован: Пн июл 04, 2016 16:51:22
Откуда: Россия, Омск

Re: STEND-BY в F030F4P6

Сообщение 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(); // <- Вот эта инструкция в итоге отправляет ядро в сон.
Реклама
aleksey chilov
Нашел транзистор. Понюхал.
Сообщения: 167
Зарегистрирован: Вс мар 27, 2022 09:38:17

Re: STEND-BY в F030F4P6

Сообщение aleksey chilov »

Спасибо!
Я разобрался. Сделал чуть по другому но суть та же.
Спасибо за ответ! Сейчас всё работает как нужно!
Ответить

Вернуться в «ARM»