Обработчик имеет следующий вид:
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)
}
}
{
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. Что я забыл или не учел?