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

 
 
> STM32L151 режим STOP
data_stack
сообщение Feb 16 2016, 14:49
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 16-10-15
Пользователь №: 88 891



Мозг дымится, прям беда какая то, никак не приручить STOP режим
Есть кнопка 1, на которую нужно однократно нажать и ввести мк в стоп. Будить планирую другой кнопкой.
Код
void EXTI2_IRQHandler(void)
{
    if(EXTI_GetITStatus(EXTI_Line2) != RESET)
    {      
        NVIC_DisableIRQ(EXTI2_IRQn);        
        stop_enable = 1;
        LED1_TOGGLE();
        EXTI_ClearITPendingBit(EXTI_Line2);        
    }
}


В основном цикле чекаю флаг кнопки. После его срабатывания ухожу в стоп. Но беда в том, что контроллер не засыпает. Детектирую это светодиодом 2.
Код
while(1) {                      
       if(stop_enable == 1)  {
           PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);
           stop_enable = 0;
           LED2_TOGGLE();
           NVIC_EnableIRQ(EXTI2_IRQn);      
       }          
}


Если вводить в сон не по кнопке, то все ок, но нужно именно по кнопке. Создалось впечатление что NVIC_DisableIRQ(EXTI2_IRQn) не отрабатывает, проверил отдельно от этого куска кода - работает. По отдельности все работает, сама проблема в том что именно этот кусок не работает, как сделать по другому не понятно.
ЗЫ видел аналогичные темы, выдергивание swd не помогло. Ввожу в стоп не в прерывании.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
data_stack
сообщение Feb 16 2016, 15:10
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 16-10-15
Пользователь №: 88 891



Специально же написал: Ввожу в стоп не в прерывании.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 28th June 2025 - 11:46
Рейтинг@Mail.ru


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