реклама на сайте
подробности

 
 
> STM32L Stop Mode, Непонятная проблема
T800
сообщение Oct 13 2014, 06:25
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 2-12-13
Пользователь №: 79 453



Всем доброго времени суток.
столкнулся с такой проблемой.
По смыслу задачи требуется сделать следующее:
Контроллер запускается, инициализирует всё что нужно, после этого переходит в Stop Mode with RTC. Просыпаться нужно по RTC таймеру, просыпается нормально. После этого выполняет нужные действия и снова надо засыпать.
И вот тут начинается проблема.
Для перехода в Stop mode я вызываю библиотечную функцию PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI). Так вот, в первый раз контроллер засыпает нормально, во второй - после вызова функции он просто отключается, как будто отключается питание. Происходит это после строчки __WFI() в функции PWR_EnterSTOPMode.
Что я делаю не так?
Спасибо всем.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
T800
сообщение Oct 14 2014, 13:17
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 2-12-13
Пользователь №: 79 453



Да я уже что только ни пробовал. Выходил из stop mode и по таймеру, и по внешней линии - стопится и выходит нормально. Но только один раз. При втором входе в stop mode виснет намертво. Пробовал и с дебагом и без дебага. Результат один и тот же.
Может где-то есть какой-то флаг который надо куда-то сбросить, но я никак не пойму в чём дело.

Не совсем понял про прерывание. Как это выглядит у меня. После функции PWR_EnterSTOPMode ничего не выполняется, программа ждёт прерывания (в моём случае внешняя линия или RTC timer) для выхода из стоп режима. Потом происходит нужное событие, запускается обработчик прерывания и программа возвращается туда где остановилась. Потом она по циклу приходит опять к PWR_EnterSTOPMode и всё благополучно виснет.

Сообщение отредактировал T800 - Oct 14 2014, 13:24
Go to the top of the page
 
+Quote Post
Zeal0t
сообщение Oct 15 2014, 05:22
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 28-06-13
Пользователь №: 77 311



Цитата(T800 @ Oct 14 2014, 17:17) *
Как это выглядит у меня. После функции PWR_EnterSTOPMode ничего не выполняется, программа ждёт прерывания (в моём случае внешняя линия или RTC timer) для выхода из стоп режима. Потом происходит нужное событие, запускается обработчик прерывания и программа возвращается туда где остановилась. Потом она по циклу приходит опять к PWR_EnterSTOPMode и всё благополучно виснет.

При возврате из STOP mode ядро переходит на тактирование от MSI RC. Нет каких то зависимостей в программе в плане инициализации или работы от тактирования?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 05:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01378 секунд с 7
ELECTRONIX ©2004-2016