Имеется МК SAM3S4B, столкнулся со следующей проблемой: не заходит в обработчик прерывания, вроде бы все делаю правильно: (разрешил глобольные прерывания __enable_irq();, разрешил прерывания в NVIC NVIC_EnableIRQ(..);, разрешил прерывания по приему/передачи USART_EnableIt(BOARD_USART_BASE, US_IER_RXRDY);
Обработчик имеет следующий вид:
CODE
void USART1_IrqHandler(void)
{
uint32_t status;
status = BOARD_USART_BASE->US_CSR;
if ((status & US_CSR_RXRDY) == US_CSR_RXRDY) {
recvDone = true;
USART_DisableIt(USART1, US_IDR_RXRDY)
}
if ((status & US_CSR_TXEMPTY) == US_CSR_TXEMPTY) {
sentDone = true;
USART_DisableIt(USART1, US_IDR_TXEMPTY)
}
}
Вот на этом коде не работает:
CODE
USART_ReadBuffer(BOARD_USART_BASE);
USART_EnableIt(BOARD_USART_BASE,US_IER_RXRDY);
while(!recvDone);
recvDone предварительно установлен false. Что я забыл или не учел?