Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: прерывание UART stm32f4
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
1921
Подскажите, пожалуйста.
Написал простую строку:

Код
//------------------------
while(1);

//---------------------

void USART3_IRQHandler(void)
{
  if(USART_GetITStatus(USART3, USART_IT_TXE) != RESET)
  {
      USART_SendData(USART3,0x55);
  }
}

Прерывания разрешил и сконфигурировал. Виснет. Если после посылки сделать задержку - работает.
Причём после повисания обнуляются все регистры USARTa. По идее, переполнений быть не должно, статус-то
анализируется.
Я прям в затруднении...
Да, ядро разогнано до 168, периферия до 84.
demiurg_spb
Цитата(1921 @ Apr 8 2013, 16:19) *

Очень странный у вас обработчик прерывания...
TXE флаг будет висеть постоянно после отправки данных в регистр сдвига. Предположим, что это сделано в тестовых целях.
Ну а по существу, поставьте __DSB(); в конце обработчика.

http://infocenter.arm.com/help/index.jsp?t...ar01s02s04.html
http://infocenter.arm.com/help/index.jsp?t...a/CHDDGICF.html
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.