diff options
| author | armink <[email protected]> | 2014-09-13 11:53:21 +0800 |
|---|---|---|
| committer | armink <[email protected]> | 2014-09-13 11:53:21 +0800 |
| commit | 77b214f1bc8cbb9463fda702ac74accf26529684 (patch) | |
| tree | 556611a3d26ad08cc8ae57fc94fc7059f3cb33ea /bsp | |
| parent | 04c4e5d9a43db20023bc160998c54efc8f45ce35 (diff) | |
[BSP]Add serial receive overflow interrupt to stm32f10x ISR.
Diffstat (limited to 'bsp')
| -rw-r--r-- | bsp/stm32f10x/drivers/usart.c | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/bsp/stm32f10x/drivers/usart.c b/bsp/stm32f10x/drivers/usart.c index ca39d49b22..4c6f24af30 100644 --- a/bsp/stm32f10x/drivers/usart.c +++ b/bsp/stm32f10x/drivers/usart.c @@ -21,19 +21,19 @@ #include <rtdevice.h> /* USART1 */ -#define UART1_GPIO_TX GPIO_Pin_9 -#define UART1_GPIO_RX GPIO_Pin_10 -#define UART1_GPIO GPIOA +#define UART1_GPIO_TX GPIO_Pin_9 +#define UART1_GPIO_RX GPIO_Pin_10 +#define UART1_GPIO GPIOA /* USART2 */ -#define UART2_GPIO_TX GPIO_Pin_2 -#define UART2_GPIO_RX GPIO_Pin_3 -#define UART2_GPIO GPIOA +#define UART2_GPIO_TX GPIO_Pin_2 +#define UART2_GPIO_RX GPIO_Pin_3 +#define UART2_GPIO GPIOA /* USART3_REMAP[1:0] = 00 */ -#define UART3_GPIO_TX GPIO_Pin_10 -#define UART3_GPIO_RX GPIO_Pin_11 -#define UART3_GPIO GPIOB +#define UART3_GPIO_TX GPIO_Pin_10 +#define UART3_GPIO_RX GPIO_Pin_11 +#define UART3_GPIO GPIOB /* STM32 uart driver */ struct stm32_uart @@ -163,7 +163,10 @@ void USART1_IRQHandler(void) /* clear interrupt */ USART_ClearITPendingBit(uart->uart_device, USART_IT_TC); } - + if (USART_GetFlagStatus(uart->uart_device, USART_FLAG_ORE) == SET) + { + stm32_getc(&serial1); + } /* leave interrupt */ rt_interrupt_leave(); } @@ -197,6 +200,10 @@ void USART2_IRQHandler(void) /* clear interrupt */ USART_ClearITPendingBit(uart->uart_device, USART_IT_TC); } + if (USART_GetFlagStatus(uart->uart_device, USART_FLAG_ORE) == SET) + { + stm32_getc(&serial2); + } /* leave interrupt */ rt_interrupt_leave(); @@ -231,6 +238,10 @@ void USART3_IRQHandler(void) /* clear interrupt */ USART_ClearITPendingBit(uart->uart_device, USART_IT_TC); } + if (USART_GetFlagStatus(uart->uart_device, USART_FLAG_ORE) == SET) + { + stm32_getc(&serial3); + } /* leave interrupt */ rt_interrupt_leave(); |
