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

 
 
> STM32F103RB, то ли баг в USARTe?
kan35
сообщение Aug 3 2011, 14:00
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 537
Регистрация: 22-02-06
Пользователь №: 14 594



Пользую USART.
Разрешено прерывание ТОЛЬКО по флагу RXNE. Все вроде бы работает, но вот если я пытаюсь стопануть проц в какой нибудь точке (поставив точку пока прога крутится), то прога сразу останавливается, но до точки не доходит, отловил - зависает в прерывании USART.
При этом бит ORE выставлен, что в принципе можно считать нормальным в такой ситуации, но именно из за него происходит зацикливание в обработчике прерывания. Добавил холостое считывание USART1_SR и избавился от этой проблемы, но в даташите написано
Цитата
An interrupt is generated on ORE flag in case of Multi Buffer
communication if the EIE bit is set.

У меня EIE не включен, однако в прерывание все равно вваливается.

Что я не учитываю? Помогите понять.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Flexz
сообщение Aug 4 2011, 07:29
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 9-10-08
Из: Московская обл.
Пользователь №: 40 797



Последнее предложение не осилил, вы к чему это вообще?

типовая последовательность обработки прерывания -
1. считать регистр статуса
2. обработать статус(ы) (в данном случае считать DR)
При этом ORE тоже сбросится. Это ошибка которую просто нужно обработать.

ТС видимо только читает DR, не глядя на статус, вот прерывание и виснет.
Go to the top of the page
 
+Quote Post
kan35
сообщение Aug 4 2011, 16:10
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 537
Регистрация: 22-02-06
Пользователь №: 14 594



Цитата(Flexz @ Aug 4 2011, 11:29) *
Последнее предложение не осилил, вы к чему это вообще?

типовая последовательность обработки прерывания -
1. считать регистр статуса
2. обработать статус(ы) (в данном случае считать DR)
При этом ORE тоже сбросится. Это ошибка которую просто нужно обработать.

ТС видимо только читает DR, не глядя на статус, вот прерывание и виснет.

ну вот я раньше просто считывал _DR, сбрасывал ...PendingBit и не было проблем. Да в принципе так то не страшно, если не допускать возникновение ORE. Но самый то вопрос в том - почему прерывание от ORE не разрешено, а оно возникает...
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 07:04
Рейтинг@Mail.ru


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