Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: KEIL STM32 Pending
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
vlad_new
При запуске программы надо очистить всякие не нужные прерывания, например 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();
vlad_new
Выяснил. Оказывается 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();

Вот так работает. Тема закрыта.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.