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

 
 
> KEIL STM32 Pending
vlad_new
сообщение Jul 8 2012, 18:19
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127



При запуске программы надо очистить всякие не нужные прерывания, например TC в USART. Сам TC очищаю и пытаюсь сбросить Pending-и в NVIC и
не получается. Чего они гады не сбрасываются?

USART3->SR&=(~USART_FLAG_TC); // Clear TC
NVIC->ICPR[0]=0xFFFFFFFF; NVIC->ICPR[1]=0xFFFFFFFF; // Clear All Pending
__enable_irq();
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 1)
vlad_new
сообщение Jul 8 2012, 20:30
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127



Выяснил. Оказывается pending-и сбрасываются, но почти тут же снова устанавливаются. Оказывается, после инициализации UARTа надо задержку вставить, поскольку TC устанавливается после какого то кол-ва клоков UARTа, а не сразу. А вот под дебагером всего этого безобразия не видно sm.gif

for(i=0; i<10000; i++);
USART3->SR&=(~USART_FLAG_TC); // Clear TC
NVIC->ICPR[0]=0xFFFFFFFF; NVIC->ICPR[1]=0xFFFFFFFF; // Clear All Pending
__enable_irq();

Вот так работает. Тема закрыта.

Сообщение отредактировал vlad_new - Jul 8 2012, 21:17
Go to the top of the page
 
+Quote Post

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

 


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


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