KARLSON 1 18 августа, 2017 Опубликовано 18 августа, 2017 · Жалоба Здравствуйте. Скажите, пожалуйста, надо ли что-то делать с операционкой перед или после функции HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON, PWR_STOPENTRY_WFI); Эта функция запускается в одной из задач. После пробуждения программа ведёт себя как -то не так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
razrab83 21 18 августа, 2017 Опубликовано 18 августа, 2017 · Жалоба Ни чего делать не нужно. Вернее я ни чего не делаю. ОС работает нормально после пробуждения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KARLSON 1 18 августа, 2017 Опубликовано 18 августа, 2017 · Жалоба У меня частота LPUART-а на много уменьшилась. Скорее всего дело не в операционке, а какую то переферию надо переинициализировать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
razrab83 21 18 августа, 2017 Опубликовано 18 августа, 2017 · Жалоба нужно запустить HSE. Возможно у вас проц начинает работать на другом генереаторе и другой частоте. PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI); /* Disable Wakeup Counter */ RTC_WakeUpCmd(DISABLE); /* After wake-up from STOP reconfigure the system clock */ /* Enable HSE */ RCC_HSEConfig(RCC_HSE_ON); /* Wait till HSE is ready */ while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET) { } /* Enable PLL */ RCC_PLLCmd(ENABLE); /* Wait till PLL is ready */ while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) ; /* Select PLL as system clock source */ RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); /* Wait till PLL is used as system clock source */ while(RCC_GetSYSCLKSource() != 0x08) ; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KARLSON 1 18 августа, 2017 Опубликовано 18 августа, 2017 · Жалоба Да, так и получилось. Частота тактирования уменьшилась. После выхода ещё раз вызвал SystemClock_Config(); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться