@@ -25,7 +25,8 @@
|
||||
|
||||
#if !defined(BSP_USING_UART1) && !defined(BSP_USING_UART2) && !defined(BSP_USING_UART3) && \
|
||||
!defined(BSP_USING_UART4) && !defined(BSP_USING_UART5) && !defined(BSP_USING_UART6) && \
|
||||
!defined(BSP_USING_UART7) && !defined(BSP_USING_UART8) && !defined(BSP_USING_LPUART1)
|
||||
!defined(BSP_USING_UART7) && !defined(BSP_USING_UART8) && !defined(BSP_USING_UART9) && \
|
||||
!defined(BSP_USING_UART10) && !defined(BSP_USING_LPUART1)
|
||||
#error "Please define at least one BSP_USING_UARTx"
|
||||
/* this driver can be disabled at menuconfig -> RT-Thread Components -> Device Drivers */
|
||||
#endif
|
||||
@@ -60,6 +61,12 @@ enum
|
||||
#ifdef BSP_USING_UART8
|
||||
UART8_INDEX,
|
||||
#endif
|
||||
#ifdef BSP_USING_UART9
|
||||
UART9_INDEX,
|
||||
#endif
|
||||
#ifdef BSP_USING_UART10
|
||||
UART10_INDEX,
|
||||
#endif
|
||||
#ifdef BSP_USING_LPUART1
|
||||
LPUART1_INDEX,
|
||||
#endif
|
||||
@@ -91,6 +98,12 @@ static struct stm32_uart_config uart_config[] =
|
||||
#ifdef BSP_USING_UART8
|
||||
UART8_CONFIG,
|
||||
#endif
|
||||
#ifdef BSP_USING_UART9
|
||||
UART9_CONFIG,
|
||||
#endif
|
||||
#ifdef BSP_USING_UART10
|
||||
UART10_CONFIG,
|
||||
#endif
|
||||
#ifdef BSP_USING_LPUART1
|
||||
LPUART1_CONFIG,
|
||||
#endif
|
||||
@@ -795,6 +808,80 @@ void UART8_DMA_TX_IRQHandler(void)
|
||||
#endif /* defined(RT_SERIAL_USING_DMA) && defined(BSP_UART8_TX_USING_DMA) */
|
||||
#endif /* BSP_USING_UART8*/
|
||||
|
||||
#if defined(BSP_USING_UART9)
|
||||
void UART9_IRQHandler(void)
|
||||
{
|
||||
/* enter interrupt */
|
||||
rt_interrupt_enter();
|
||||
|
||||
uart_isr(&(uart_obj[UART9_INDEX].serial));
|
||||
|
||||
/* leave interrupt */
|
||||
rt_interrupt_leave();
|
||||
}
|
||||
#if defined(RT_SERIAL_USING_DMA) && defined(BSP_UART9_RX_USING_DMA)
|
||||
void UART9_DMA_RX_IRQHandler(void)
|
||||
{
|
||||
/* enter interrupt */
|
||||
rt_interrupt_enter();
|
||||
|
||||
HAL_DMA_IRQHandler(&uart_obj[UART9_INDEX].dma_rx.handle);
|
||||
|
||||
/* leave interrupt */
|
||||
rt_interrupt_leave();
|
||||
}
|
||||
#endif /* defined(RT_SERIAL_USING_DMA) && defined(BSP_UART9_RX_USING_DMA) */
|
||||
#if defined(RT_SERIAL_USING_DMA) && defined(BSP_UART9_TX_USING_DMA)
|
||||
void UART9_DMA_TX_IRQHandler(void)
|
||||
{
|
||||
/* enter interrupt */
|
||||
rt_interrupt_enter();
|
||||
|
||||
HAL_DMA_IRQHandler(&uart_obj[UART9_INDEX].dma_tx.handle);
|
||||
|
||||
/* leave interrupt */
|
||||
rt_interrupt_leave();
|
||||
}
|
||||
#endif /* defined(RT_SERIAL_USING_DMA) && defined(BSP_UART9_TX_USING_DMA) */
|
||||
#endif /* BSP_USING_UART9*/
|
||||
|
||||
#if defined(BSP_USING_UART10)
|
||||
void UART10_IRQHandler(void)
|
||||
{
|
||||
/* enter interrupt */
|
||||
rt_interrupt_enter();
|
||||
|
||||
uart_isr(&(uart_obj[UART10_INDEX].serial));
|
||||
|
||||
/* leave interrupt */
|
||||
rt_interrupt_leave();
|
||||
}
|
||||
#if defined(RT_SERIAL_USING_DMA) && defined(BSP_UART10_RX_USING_DMA)
|
||||
void UART10_DMA_RX_IRQHandler(void)
|
||||
{
|
||||
/* enter interrupt */
|
||||
rt_interrupt_enter();
|
||||
|
||||
HAL_DMA_IRQHandler(&uart_obj[UART10_INDEX].dma_rx.handle);
|
||||
|
||||
/* leave interrupt */
|
||||
rt_interrupt_leave();
|
||||
}
|
||||
#endif /* defined(RT_SERIAL_USING_DMA) && defined(BSP_UART10_RX_USING_DMA) */
|
||||
#if defined(RT_SERIAL_USING_DMA) && defined(BSP_UART10_TX_USING_DMA)
|
||||
void UART10_DMA_TX_IRQHandler(void)
|
||||
{
|
||||
/* enter interrupt */
|
||||
rt_interrupt_enter();
|
||||
|
||||
HAL_DMA_IRQHandler(&uart_obj[UART10_INDEX].dma_tx.handle);
|
||||
|
||||
/* leave interrupt */
|
||||
rt_interrupt_leave();
|
||||
}
|
||||
#endif /* defined(RT_SERIAL_USING_DMA) && defined(BSP_UART10_TX_USING_DMA) */
|
||||
#endif /* BSP_USING_UART10*/
|
||||
|
||||
#if defined(BSP_USING_LPUART1)
|
||||
void LPUART1_IRQHandler(void)
|
||||
{
|
||||
@@ -820,6 +907,8 @@ void LPUART1_DMA_RX_IRQHandler(void)
|
||||
#endif /* defined(RT_SERIAL_USING_DMA) && defined(BSP_LPUART1_RX_USING_DMA) */
|
||||
#endif /* BSP_USING_LPUART1*/
|
||||
|
||||
#ifdef RT_SERIAL_USING_DMA
|
||||
|
||||
static void stm32_uart_get_dma_config(void)
|
||||
{
|
||||
#ifdef BSP_USING_UART1
|
||||
@@ -933,9 +1022,36 @@ static void stm32_uart_get_dma_config(void)
|
||||
uart_config[UART8_INDEX].dma_tx = &uart8_dma_tx;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef BSP_USING_UART9
|
||||
uart_obj[UART8_INDEX].uart_dma_flag = 0;
|
||||
#ifdef BSP_UART9_RX_USING_DMA
|
||||
uart_obj[UART9_INDEX].uart_dma_flag |= RT_DEVICE_FLAG_DMA_RX;
|
||||
static struct dma_config uart9_dma_rx = UART9_DMA_RX_CONFIG;
|
||||
uart_config[UART9_INDEX].dma_rx = &uart8_dma_rx;
|
||||
#endif
|
||||
#ifdef BSP_UART9_TX_USING_DMA
|
||||
uart_obj[UART9_INDEX].uart_dma_flag |= RT_DEVICE_FLAG_DMA_TX;
|
||||
static struct dma_config uart9_dma_tx = UART9_DMA_TX_CONFIG;
|
||||
uart_config[UART9_INDEX].dma_tx = &uart9_dma_tx;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef BSP_USING_UART10
|
||||
uart_obj[UART10_INDEX].uart_dma_flag = 0;
|
||||
#ifdef BSP_UART10_RX_USING_DMA
|
||||
uart_obj[UART10_INDEX].uart_dma_flag |= RT_DEVICE_FLAG_DMA_RX;
|
||||
static struct dma_config uart10_dma_rx = UART10_DMA_RX_CONFIG;
|
||||
uart_config[UART10_INDEX].dma_rx = &uart10_dma_rx;
|
||||
#endif
|
||||
#ifdef BSP_UART10_TX_USING_DMA
|
||||
uart_obj[UART10_INDEX].uart_dma_flag |= RT_DEVICE_FLAG_DMA_TX;
|
||||
static struct dma_config uart10_dma_tx = UART10_DMA_TX_CONFIG;
|
||||
uart_config[UART10_INDEX].dma_tx = &uart10_dma_tx;
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef RT_SERIAL_USING_DMA
|
||||
static void stm32_dma_config(struct rt_serial_device *serial, rt_ubase_t flag)
|
||||
{
|
||||
struct rt_serial_rx_fifo *rx_fifo;
|
||||
|
Reference in New Issue
Block a user