uart_config.h 12 KB

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