void USART1_IRQHandler(void)
{
OS_ERR err;
uint8_t Res;
OSIntEnter();
if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{
Res = USART_ReceiveData(USART1);
if (UART_RX_CNT < MAX_PACKET_SIZE) {
UART_RX_BUF[UART_RX_CNT++] = Res;
}
if (Res == '\n') {
OSTaskQPost((OS_TCB*)&Usart1RxTask,
(void*)UART_RX_BUF,
(OS_MSG_SIZE)UART_RX_CNT,
(OS_OPT)OS_OPT_POST_FIFO,
(OS_ERR*)&err);
UART_RX_CNT = 0;
}
}
OSIntExit();
} |