06.07.2014, 11:52
|
|
Прописка
Регистрация: 25.02.2011
Сообщений: 122
Сказал спасибо: 61
Сказали Спасибо 23 раз(а) в 19 сообщении(ях)
|
STM32F050 не выходит из режима StandBy
Конкретно чип - STM32F050F4P6. Нужно, чтобы он выходил из стендбая примерно 1 раз в 5 секунд, передавал данные, и уходил обратно в стендбай.
Инициализирую RTC, тактирование от внутреннего LSI:
Код:
|
void RTC_On(void)
{
RTC_InitTypeDef RTC_InitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
/* Allow access to RTC */
PWR_BackupAccessCmd(ENABLE);
/* Reset Backup Domain */
RCC_BackupResetCmd(ENABLE);
RCC_BackupResetCmd(DISABLE);
/*!‹ LSI Enable */
RCC_LSICmd(ENABLE);
/*!‹ Wait till LSI is ready */
while (RCC_GetFlagStatus(RCC_FLAG_LSIRDY) == RESET);
/*!‹ RTC Clock Source Selection */
RCC_RTCCLKConfig(RCC_RTCCLKSource_LSI);
/* Enable the RTC Clock */
RCC_RTCCLKCmd(ENABLE);
/* Wait for RTC APB registers synchronisation */
RTC_WaitForSynchro();
/*Calender Configuartion*/
RTC_InitStructure.RTC_AsynchPrediv = 0x7F;
RTC_InitStructure.RTC_SynchPrediv = 0xFF;
RTC_InitStructure.RTC_HourFormat = RTC_HourFormat_24;
RTC_Init(&RTC_InitStructure);
} |
Настраиваю ALARM MODE на 5 сек и прерывания от него:
Код:
|
void RTC_AlarmOn(uint8_t t_sec)
{
EXTI_InitTypeDef EXTI_InitStructure;
EXTI_InitStructure.EXTI_Line = EXTI_Line17;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
/* Enable the RTC gloabal Interrupt */
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPriority = 3;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
// RTC_AlarmTypeDef RTC_AlarmStructure;
// RTC_AlarmStructure.RTC_AlarmTime.RTC_Seconds = t_sec;
// RTC_AlarmStructure.RTC_AlarmTime.RTC_H12 = 0;
// RTC_AlarmStructure.RTC_AlarmTime.RTC_Hours = 0;
// RTC_AlarmStructure.RTC_AlarmTime.RTC_Minutes = 0;
// //RTC_AlarmStructure.RTC_AlarmMask = RTC_AlarmMask_None;
// RTC_AlarmStructure.RTC_AlarmMask = RTC_AlarmMask_DateWeekDay;
// RTC_AlarmStructure.RTC_AlarmDateWeekDay = RTC_AlarmDateWeekDaySel_Date;
//RTC_SetAlarm(RTC_Format_BIN, RTC_Alarm_A, &RTC_AlarmStructure);
/* Disable the write protection for RTC registers */
RTC-›WPR = 0xCA;
RTC-›WPR = 0x53;
/* Configure the Alarm register */
RTC-›ALRMAR = (uint32_t)t_sec;
RTC-›ALRMAR |= (1‹‹31) | (1‹‹23) | (1‹‹15) ; //set mask
/* Enable the write protection for RTC registers */
RTC-›WPR = 0xFF;
RTC_AlarmCmd(RTC_Alarm_A, ENABLE);
RTC_ITConfig(RTC_IT_ALRA,ENABLE);
} |
Погружаю МК в "спячку" :
Код:
|
PWR_EnterSTANDBYMode() |
И все, из спячки он не выходит, хотя должен...
Интересно, что если вместо StandBy активировать StopMode или SleepMode, то тогда все работает. В чем же прокол?
|
|
|
|
06.07.2014, 15:12
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,058
Сказал спасибо: 2,563
Сказали Спасибо 11,890 раз(а) в 5,964 сообщении(ях)
|
Re: STM32F050 не выходит из режима StandBy
Сообщение от _Слон_
|
если вместо StandBy активировать StopMode или SleepMode, то тогда все работает. В чем же прокол?
|
А посмотреть содержимое этих функций и найти существенные различия?
От "недопилов" никто не застрахован.
А лучше все своими руками, без SPL-ов всяких, там уж точно знаешь - кто виноват.
Может и ошибаюсь - комп чужой, не имею возможности сильно курить доки.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
06.07.2014, 20:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: STM32F050 не выходит из режима StandBy
После стендбая проц всегда выходит на вектор Ресет
|
|
|
|
06.07.2014, 20:54
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,058
Сказал спасибо: 2,563
Сказали Спасибо 11,890 раз(а) в 5,964 сообщении(ях)
|
Re: STM32F050 не выходит из режима StandBy
Сообщение от niXto
|
После стендбая проц всегда выходит на вектор Ресет
|
Гы! Затягиваться надо глыбже... И курить, курить... доки...
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
06.07.2014, 22:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: STM32F050 не выходит из режима StandBy
Сообщение от akegor
|
Гы! Затягиваться надо глыбже... И курить, курить... доки...
|
Кому? Мне или вам?
|
|
|
|
06.07.2014, 23:01
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,058
Сказал спасибо: 2,563
Сказали Спасибо 11,890 раз(а) в 5,964 сообщении(ях)
|
Re: STM32F050 не выходит из режима StandBy
niXto, да мне же! С Вами не соревнуюсь, а прислушиваюсь.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
07.07.2014, 12:05
|
|
Прописка
Регистрация: 25.02.2011
Сообщений: 122
Сказал спасибо: 61
Сказали Спасибо 23 раз(а) в 19 сообщении(ях)
|
Re: STM32F050 не выходит из режима StandBy
Сообщение от niXto
|
После стендбая проц всегда выходит на вектор Ресет
|
Хм, действительно... Так работает. Если не трудно, подскажите, на какой странице в мануале об этом написано.
|
|
|
|
07.07.2014, 12:31
|
|
Частый гость
Регистрация: 25.03.2010
Адрес: Voronezh
Сообщений: 35
Сказал спасибо: 0
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
|
Re: STM32F050 не выходит из режима StandBy
раздел Power control -›Standby mode-›Exiting Standby mode
After waking up from Standby mode, program execution restarts in the same way as after a Reset
|
|
|
Сказали "Спасибо" Oleg Galizin
|
|
|
07.07.2014, 13:00
|
|
Прописка
Регистрация: 25.02.2011
Сообщений: 122
Сказал спасибо: 61
Сказали Спасибо 23 раз(а) в 19 сообщении(ях)
|
Re: STM32F050 не выходит из режима StandBy
Сообщение от Oleg Galizin
|
раздел Power control -›Standby mode-›Exiting Standby mode
After waking up from Standby mode, program execution restarts in the same way as after a Reset
|
Точно, RM0091 p.80 , проморгал я это дело...
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:31.
|
|