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

 
 
> STM32F107 - Вкл/отк прерывания UART5, Прерывание по TXE порой не отключается
ISK2010
сообщение Apr 1 2011, 10:01
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 205
Регистрация: 21-09-10
Из: г.Зеленоград
Пользователь №: 59 631



Столкнулся с такой проблемкой:

Ну, как обычно формирую пакет из N байт, устанавливаю свой флажок типа датареди, по которому далее включается прерывание по TXE. В обработчике прерывания при выполнении условия (UART_DSP_TXE && UART_DSP_TxDataReady) соответственно посылаю побайтно пакет по UART5 и при передаче последнего байта датареди = 0 и выключаю прерывание по TXE. Все, вроде как в прерывание больше не должен влетать и можно тихо-мирно ждать следующей передачи или принимать данные. Но вместо этого после передачи последнего байта прерывание зацикливается. При отладке обнаружил, что прерывание выключается, но при выходе из обработчика снова включается, и прерывание зацикливается, т.к. датареди уже сброшен и никто не обрабатывает. ПОЧЕМУ? кто снова взводит бит включения прерывания?!? Задался я этим вопросом, ведь более нигде его не включал. При этом я понимал, что когда датареди=1 в фоне это прерывание включается много раз, но не придавал этому значения: включенного уж более не включишь, а в конце передачи датареди вместе с отключением сбрасывается.

И вот уж более ничего другого не придумав, решил поэкспериментировать. Обнаружил, что если несколько раз подряд включить прерывание, то происходит описанная выше проблема.

У кого-нибудь такое встречалось? Можете прокомментировать?




Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ISK2010
сообщение Apr 1 2011, 12:47
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 205
Регистрация: 21-09-10
Из: г.Зеленоград
Пользователь №: 59 631



Сам разобрался... Проспаться просто надо
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


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


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