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

 
 
> STM32F103. Проблема с USART, Не снимаются ошибки в регистре статуса
inventor
сообщение Jul 7 2015, 10:25
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 524
Регистрация: 25-12-08
Из: Москва
Пользователь №: 42 748



Заметил странное поведение USART
после нескольких минут работы
USART впадает в кому внутри прерывания:
CODE
static int i = 0;
void USART3_IRQHandler(void)
{
volatile u8 byte;
register u32 status;

status = USART3->SR;

/* Read one byte from the receive data register */
if (status & USART_FLAG_RXNE) {
byte = USART3->DR;
gps_nmea_parse(byte);
}

/* Write one byte to the transmit data register */
if (status & USART_FLAG_TXE) {
/* Disable the USART3 Transmit interrupt */
USART_ITConfig(USART3, USART_IT_TXE, DISABLE);
}

/* OverRun + Noise + Framing + Parity Error */
if (USART3->SR & 0x0F) {
//USART3->SR |= 0xf;
if(i % 500 == 0)
led_toggle(LED3);
byte = USART3->DR;
}
}


Вертица внутри ошибок OverRun + Noise + Framing + Parity Error
Ошибки не снимаются
В даташите написано, что должны сниматься последовательно чтением
статус регистра и регистра данных.
Не помогает.
В чем может быть засада?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 12th August 2025 - 02:37
Рейтинг@Mail.ru


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