Improve UART IRQ management.
This commit is contained in:
parent
bb08369b01
commit
711dd02a9c
1 changed files with 22 additions and 3 deletions
|
@ -41,6 +41,7 @@
|
||||||
#include "radio_gpio.h"
|
#include "radio_gpio.h"
|
||||||
#include "spirit1.h"
|
#include "spirit1.h"
|
||||||
|
|
||||||
|
|
||||||
extern UART_HandleTypeDef UartHandle;
|
extern UART_HandleTypeDef UartHandle;
|
||||||
/** @addtogroup STM32L1xx_HAL_Examples
|
/** @addtogroup STM32L1xx_HAL_Examples
|
||||||
* @{
|
* @{
|
||||||
|
@ -319,10 +320,28 @@ void EXTI15_10_IRQHandler(void)
|
||||||
|
|
||||||
void USART2_IRQHandler()
|
void USART2_IRQHandler()
|
||||||
{
|
{
|
||||||
slip_input_byte(UartHandle.Instance->DR);
|
UART_HandleTypeDef *huart = &UartHandle;
|
||||||
return;
|
|
||||||
|
|
||||||
//HAL_UART_IRQHandler(&UartHandle);
|
if(__HAL_UART_GET_FLAG(huart, UART_FLAG_PE)){
|
||||||
|
__HAL_UART_CLEAR_PEFLAG(huart);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(__HAL_UART_GET_FLAG(huart, UART_FLAG_FE)){
|
||||||
|
__HAL_UART_CLEAR_FEFLAG(huart);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(__HAL_UART_GET_FLAG(huart, UART_FLAG_NE)){
|
||||||
|
__HAL_UART_CLEAR_NEFLAG(huart);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(__HAL_UART_GET_FLAG(huart, UART_FLAG_ORE)){
|
||||||
|
__HAL_UART_CLEAR_OREFLAG(&UartHandle);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(__HAL_UART_GET_FLAG(huart, UART_FLAG_RXNE)){
|
||||||
|
slip_input_byte(UartHandle.Instance->DR);
|
||||||
|
__HAL_UART_GET_IT_SOURCE(&UartHandle, UART_IT_RXNE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Reference in a new issue