STM32F4 выход из STOP при получении прерывания Usart - PullRequest
0 голосов
/ 12 апреля 2019

STM32F429 плата обнаружения :

Невозможно выйти из режима STOP при получении прерывания Uart, потому что все часы остановлены? Насколько я понимаю, любая линия EXTI, настроенная в режиме прерывания, может разбудить микроконтроллер. EXTI0 - EXTI15.

Пожалуйста, я буду признателен за любые советы о том, как начать с него.

Я попробовал следующее с кубом STM32 Mx:

  1. PA0 как GPIO_EXT0 и сгенерировал код
  2. как связать вывод получения UART с GPIO_EXT0

Ответы [ 2 ]

0 голосов
/ 12 апреля 2019

Это можно сделать программно, но не с помощью STM32CubeMX

Входы GPIO и EXTI (если настроены) активны, даже если вывод настроен как альтернативная функция.Сконфигурируйте вывод UART RX так же, как для приема UART, затем выберите этот вывод в качестве источника EXTI в соответствующем регистре SYSCFG->EXTICR* и настройте регистры EXTI соответственно.Вы, вероятно, захотите прерывание по заднему фронту, так как состояние простоя линии высокое.

Имейте в виду, что MCU требуется некоторое время для возобновления операций, поэтому некоторые данные, полученные через порт UART, будут неизбежнопотерян.

PA0 не может быть сконфигурирован как вывод RART UART, используйте линию EXTI, соответствующую выводу RX используемого UART.

0 голосов
/ 12 апреля 2019

Хотя вы правы в том, что выводы EXTI0 - EXTI15 конфигурируются для пробуждения, к сожалению, эта конкретная серия микроконтроллеров (STM32F4) не может иметь активные часы USART, когда включен режим остановки. Это означает, что периферийное устройство не может видеть никаких данных. Вы можете; тем не менее, используйте внешний сторожевой таймер, RTC и т. д. ... это будет возможно с вашим текущим микроконтроллером. Для этого есть обходные пути.

Вы можете использовать спящий режим, при котором только часы Cortex M4 и процессор будут остановлены, пока все периферийные устройства будут работать. Тем не менее, со всеми включенными периферийными часами вы будете получать больше тока.

Если вас интересует функциональность часов USART в режиме остановки, проверьте STM32L0 или STM32L4. Оба имеют эту функцию, и она работает феноменально хорошо, и я очень рекомендую эти две серии для приложений с низким энергопотреблением, поскольку именно для этого они и предназначены.

...