1 /* 2 * Copyright (c) 2006-2023, RT-Thread Development Team 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 * 6 * Change Logs: 7 * Date Author Notes 8 * 2018-10-30 zylx first version 9 */ 10 11 #ifndef __UART_CONFIG_H__ 12 #define __UART_CONFIG_H__ 13 14 #include <rtthread.h> 15 16 #ifdef __cplusplus 17 extern "C" { 18 #endif 19 20 #if defined(BSP_USING_LPUART1) 21 #ifndef LPUART1_CONFIG 22 #if defined(STM32G071xx) || defined(STM32G081xx) 23 #define LPUART1_CONFIG \ 24 { \ 25 .name = "lpuart1", \ 26 .Instance = LPUART1, \ 27 .irq_type = USART3_4_LPUART1_IRQn, \ 28 } 29 #elif defined(STM32G0B1xx) || defined(STM32G0C1xx) 30 #define LPUART1_CONFIG \ 31 { \ 32 .name = "lpuart1", \ 33 .Instance = LPUART1, \ 34 .irq_type = USART3_4_5_6_LPUART1_IRQn, \ 35 } 36 #endif /* defined(STM32G071xx) || defined(STM32G081xx) */ 37 #endif /* LPUART1_CONFIG */ 38 #if defined(BSP_LPUART1_RX_USING_DMA) 39 #ifndef LPUART1_DMA_CONFIG 40 #define LPUART1_DMA_CONFIG \ 41 { \ 42 .Instance = LPUART1_RX_DMA_INSTANCE, \ 43 .request = LPUART1_RX_DMA_REQUEST, \ 44 .dma_rcc = LPUART1_RX_DMA_RCC, \ 45 .dma_irq = LPUART1_RX_DMA_IRQ, \ 46 } 47 #endif /* LPUART1_DMA_CONFIG */ 48 #endif /* BSP_LPUART1_RX_USING_DMA */ 49 #endif /* BSP_USING_LPUART1 */ 50 51 #if defined(BSP_USING_UART1) 52 #ifndef UART1_CONFIG 53 #define UART1_CONFIG \ 54 { \ 55 .name = "uart1", \ 56 .Instance = USART1, \ 57 .irq_type = USART1_IRQn, \ 58 } 59 #endif /* UART1_CONFIG */ 60 #endif /* BSP_USING_UART1 */ 61 62 #if defined(BSP_UART1_RX_USING_DMA) 63 #ifndef UART1_DMA_RX_CONFIG 64 #define UART1_DMA_RX_CONFIG \ 65 { \ 66 .Instance = UART1_RX_DMA_INSTANCE, \ 67 .request = UART1_RX_DMA_REQUEST, \ 68 .dma_rcc = UART1_RX_DMA_RCC, \ 69 .dma_irq = UART1_RX_DMA_IRQ, \ 70 } 71 #endif /* UART1_DMA_RX_CONFIG */ 72 #endif /* BSP_UART1_RX_USING_DMA */ 73 74 #if defined(BSP_UART1_TX_USING_DMA) 75 #ifndef UART1_DMA_TX_CONFIG 76 #define UART1_DMA_TX_CONFIG \ 77 { \ 78 .Instance = UART1_TX_DMA_INSTANCE, \ 79 .request = UART1_TX_DMA_REQUEST, \ 80 .dma_rcc = UART1_TX_DMA_RCC, \ 81 .dma_irq = UART1_TX_DMA_IRQ, \ 82 } 83 #endif /* UART1_DMA_TX_CONFIG */ 84 #endif /* BSP_UART1_TX_USING_DMA */ 85 86 #if defined(BSP_USING_UART2) 87 #ifndef UART2_CONFIG 88 #if defined(STM32G0B1xx) || defined(STM32G0C1xx) 89 #define UART2_CONFIG \ 90 { \ 91 .name = "uart2", \ 92 .Instance = USART2, \ 93 .irq_type = USART2_LPUART2_IRQn , \ 94 } 95 #else 96 #define UART2_CONFIG \ 97 { \ 98 .name = "uart2", \ 99 .Instance = USART2, \ 100 .irq_type = USART2_IRQn, \ 101 } 102 #endif /* defined(STM32G0B1xx) || defined(STM32G0C1xx) */ 103 #endif /* UART2_CONFIG */ 104 #endif /* BSP_USING_UART2 */ 105 106 #if defined(BSP_UART2_RX_USING_DMA) 107 #ifndef UART2_DMA_RX_CONFIG 108 #define UART2_DMA_RX_CONFIG \ 109 { \ 110 .Instance = UART2_RX_DMA_INSTANCE, \ 111 .request = UART2_RX_DMA_REQUEST, \ 112 .dma_rcc = UART2_RX_DMA_RCC, \ 113 .dma_irq = UART2_RX_DMA_IRQ, \ 114 } 115 #endif /* UART2_DMA_RX_CONFIG */ 116 #endif /* BSP_UART2_RX_USING_DMA */ 117 118 #if defined(BSP_UART2_TX_USING_DMA) 119 #ifndef UART2_DMA_TX_CONFIG 120 #define UART2_DMA_TX_CONFIG \ 121 { \ 122 .Instance = UART2_TX_DMA_INSTANCE, \ 123 .request = UART2_TX_DMA_REQUEST, \ 124 .dma_rcc = UART2_TX_DMA_RCC, \ 125 .dma_irq = UART2_TX_DMA_IRQ, \ 126 } 127 #endif /* UART2_DMA_TX_CONFIG */ 128 #endif /* BSP_UART2_TX_USING_DMA */ 129 130 #if defined(BSP_USING_UART3) 131 #ifndef UART3_CONFIG 132 #if defined(STM32G0B1xx) || defined(STM32G0C1xx) 133 #define UART3_CONFIG \ 134 { \ 135 .name = "uart3", \ 136 .Instance = USART3, \ 137 .irq_type = USART3_4_5_6_LPUART1_IRQn, \ 138 } 139 #elif defined(STM32G070xx) 140 #define UART3_CONFIG \ 141 { \ 142 .name = "uart3", \ 143 .Instance = USART3, \ 144 .irq_type = USART3_4_IRQn, \ 145 } 146 #elif defined(STM32G071xx) || defined(STM32G081xx) 147 #define UART3_CONFIG \ 148 { \ 149 .name = "uart3", \ 150 .Instance = USART3, \ 151 .irq_type = USART3_4_LPUART1_IRQn, \ 152 } 153 #elif defined(STM32G0B0xx) 154 #define UART3_CONFIG \ 155 { \ 156 .name = "uart3", \ 157 .Instance = USART3, \ 158 .irq_type = USART3_4_5_6_IRQn, \ 159 } 160 #else 161 #define UART3_CONFIG \ 162 { \ 163 .name = "uart3", \ 164 .Instance = USART3, \ 165 .irq_type = USART3_IRQn, \ 166 } 167 #endif /* defined(STM32G0B1xx) || defined(STM32G0C1xx) */ 168 #endif /* UART3_CONFIG */ 169 #endif /* BSP_USING_UART3 */ 170 171 #if defined(BSP_UART3_RX_USING_DMA) 172 #ifndef UART3_DMA_RX_CONFIG 173 #define UART3_DMA_RX_CONFIG \ 174 { \ 175 .Instance = UART3_RX_DMA_INSTANCE, \ 176 .request = UART3_RX_DMA_REQUEST, \ 177 .dma_rcc = UART3_RX_DMA_RCC, \ 178 .dma_irq = UART3_RX_DMA_IRQ, \ 179 } 180 #endif /* UART3_DMA_RX_CONFIG */ 181 #endif /* BSP_UART3_RX_USING_DMA */ 182 183 #if defined(BSP_USING_UART4) 184 #ifndef UART4_CONFIG 185 #if defined(STM32G0B1xx) || defined(STM32G0C1xx) 186 #define UART4_CONFIG \ 187 { \ 188 .name = "uart4", \ 189 .Instance = USART4, \ 190 .irq_type = USART3_4_5_6_LPUART1_IRQn, \ 191 } 192 #elif defined(STM32G070xx) 193 #define UART4_CONFIG \ 194 { \ 195 .name = "uart4", \ 196 .Instance = USART4, \ 197 .irq_type = USART3_4_IRQn, \ 198 } 199 #elif defined(STM32G071xx) || defined(STM32G081xx) 200 #define UART4_CONFIG \ 201 { \ 202 .name = "uart4", \ 203 .Instance = USART4, \ 204 .irq_type = USART3_4_LPUART1_IRQn, \ 205 } 206 #elif defined(STM32G0B0xx) 207 #define UART4_CONFIG \ 208 { \ 209 .name = "uart4", \ 210 .Instance = USART4, \ 211 .irq_type = USART3_4_5_6_IRQn, \ 212 } 213 #else 214 #define UART4_CONFIG \ 215 { \ 216 .name = "uart4", \ 217 .Instance = USART4, \ 218 .irq_type = USART4_IRQn, \ 219 } 220 #endif /* defined(STM32G0B1xx) || defined(STM32G0C1xx) */ 221 #endif /* UART4_CONFIG */ 222 #endif /* BSP_USING_UART4 */ 223 224 #if defined(BSP_UART4_RX_USING_DMA) 225 #ifndef UART4_DMA_RX_CONFIG 226 #define UART4_DMA_RX_CONFIG \ 227 { \ 228 .Instance = UART4_RX_DMA_INSTANCE, \ 229 .request = UART4_RX_DMA_REQUEST, \ 230 .dma_rcc = UART4_RX_DMA_RCC, \ 231 .dma_irq = UART4_RX_DMA_IRQ, \ 232 } 233 #endif /* UART4_DMA_RX_CONFIG */ 234 #endif /* BSP_UART4_RX_USING_DMA */ 235 236 #if defined(BSP_USING_UART5) 237 #ifndef UART5_CONFIG 238 #if defined(STM32G0B1xx) || defined(STM32G0C1xx) 239 #define UART5_CONFIG \ 240 { \ 241 .name = "uart5", \ 242 .Instance = UART5, \ 243 .irq_type = USART3_4_5_6_LPUART1_IRQn, \ 244 } 245 #elif defined(STM32G0B0xx) 246 #define UART5_CONFIG \ 247 { \ 248 .name = "uart5", \ 249 .Instance = UART5, \ 250 .irq_type = USART3_4_5_6_IRQn, \ 251 } 252 #else 253 #define UART5_CONFIG \ 254 { \ 255 .name = "uart5", \ 256 .Instance = UART5, \ 257 .irq_type = UART5_IRQn, \ 258 } 259 #endif /* defined(STM32G0B1xx) || defined(STM32G0C1xx) */ 260 #endif /* UART5_CONFIG */ 261 #endif /* BSP_USING_UART5 */ 262 263 #if defined(BSP_UART5_RX_USING_DMA) 264 #ifndef UART5_DMA_RX_CONFIG 265 #define UART5_DMA_RX_CONFIG \ 266 { \ 267 .Instance = DMA_NOT_AVAILABLE, \ 268 } 269 #endif /* UART5_DMA_RX_CONFIG */ 270 #endif /* BSP_UART5_RX_USING_DMA */ 271 272 #ifdef __cplusplus 273 } 274 #endif 275 276 #endif /* __UART_CONFIG_H__ */ 277