UART_ARM_CONFIG.h 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. #ifndef __USART_ARM_DEFINE_H
  2. #define __USART_ARM_DEFINE_H
  3. //===========================================================
  4. //若没有定义,则采用以下默认值
  5. #ifndef UART_ARM_Periph_Num
  6. #define UART_ARM_Periph_Num 1
  7. #endif
  8. #ifndef UART_ARM_ReMap_Num
  9. #define UART_ARM_ReMap_Num 0
  10. #endif
  11. //===========================================================
  12. //Tx与Rx引脚
  13. #if UART_ARM_Periph_Num == 1
  14. //1号串口
  15. #define UART_ARM_Periph USART1
  16. #define UART_ARM_IRQ_Handler USART1_IRQHandler
  17. #define UART_ARM_IRQ USART1_IRQn
  18. #define UART_ARM_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE)
  19. #if UART_ARM_ReMap_Num == 0
  20. //1号串口不映射,使用PA8,PA9
  21. #define UART_ARM_Tx_Port GPIOA
  22. #define UART_ARM_Tx_Line GPIO_Pin_9
  23. #define UART_ARM_Tx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE)
  24. #define UART_ARM_Rx_Port GPIOA
  25. #define UART_ARM_Rx_Line GPIO_Pin_10
  26. #define UART_ARM_Rx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE)
  27. #define UART_ARM_Remap()
  28. #elif UART_ARM_ReMap_Num == 1
  29. //1号串映射到 PB6,PB7
  30. #define UART_ARM_Tx_Port GPIOB
  31. #define UART_ARM_Tx_Line GPIO_Pin_6
  32. #define UART_ARM_Tx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE)
  33. #define UART_ARM_Rx_Port GPIOB
  34. #define UART_ARM_Rx_Line GPIO_Pin_7
  35. #define UART_ARM_Rx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE)
  36. #define UART_ARM_Remap() GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE)
  37. #endif
  38. #elif UART_ARM_Periph_Num == 2
  39. //2号串口
  40. #define UART_ARM_Periph USART2
  41. #define UART_ARM_IRQ_Handler USART2_IRQHandler
  42. #define UART_ARM_IRQ USART2_IRQn
  43. #define UART_ARM_RccOpen() RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE)
  44. #if UART_ARM_ReMap_Num == 0
  45. //2号串口不映射,使用PA2,PA3
  46. #define UART_ARM_Tx_Port GPIOA
  47. #define UART_ARM_Tx_Line GPIO_Pin_2
  48. #define UART_ARM_Tx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE)
  49. #define UART_ARM_Rx_Port GPIOA
  50. #define UART_ARM_Rx_Line GPIO_Pin_3
  51. #define UART_ARM_Rx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE)
  52. #define UART_ARM_Remap()
  53. #elif UART_ARM_ReMap_Num == 1
  54. //2号串映射到 PD5,PD6
  55. #define UART_ARM_Tx_Port GPIOD
  56. #define UART_ARM_Tx_Line GPIO_Pin_5
  57. #define UART_ARM_Tx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE)
  58. #define UART_ARM_Rx_Port GPIOD
  59. #define UART_ARM_Rx_Line GPIO_Pin_6
  60. #define UART_ARM_Rx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE)
  61. #define UART_ARM_Remap() GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE)
  62. #endif
  63. #elif UART_ARM_Periph_Num == 3
  64. //3号串口
  65. #define UART_ARM_Periph USART3
  66. #define UART_ARM_IRQ_Handler USART3_IRQHandler
  67. #define UART_ARM_IRQ USART3_IRQn
  68. #define UART_ARM_RccOpen() RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE)
  69. #if UART_ARM_ReMap_Num == 0
  70. //3号串口不映射,使用PB10,PB11
  71. #define UART_ARM_Tx_Port GPIOB
  72. #define UART_ARM_Tx_Line GPIO_Pin_10
  73. #define UART_ARM_Tx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE)
  74. #define UART_ARM_Rx_Port GPIOB
  75. #define UART_ARM_Rx_Line GPIO_Pin_11
  76. #define UART_ARM_Rx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE)
  77. #define UART_ARM_Remap()
  78. #elif UART_ARM_ReMap_Num == 1
  79. //3号串映射到 PC10,PC11
  80. #define UART_ARM_Tx_Port GPIOC
  81. #define UART_ARM_Tx_Line GPIO_Pin_10
  82. #define UART_ARM_Tx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE)
  83. #define UART_ARM_Rx_Port GPIOC
  84. #define UART_ARM_Rx_Line GPIO_Pin_11
  85. #define UART_ARM_Rx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE)
  86. #define UART_ARM_Remap() GPIO_PinRemapConfig(GPIO_PartialRemap_USART3, ENABLE)
  87. #elif UART_ARM_ReMap_Num == 2
  88. //3号串映射到 PD8,PD9
  89. #define UART_ARM_Tx_Port GPIOD
  90. #define UART_ARM_Tx_Line GPIO_Pin_8
  91. #define UART_ARM_Tx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE)
  92. #define UART_ARM_Rx_Port GPIOD
  93. #define UART_ARM_Rx_Line GPIO_Pin_9
  94. #define UART_ARM_Rx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE)
  95. #define UART_ARM_Remap() GPIO_PinRemapConfig(GPIO_FullRemap_USART3, ENABLE)
  96. #endif
  97. #elif UART_ARM_Periph_Num == 4
  98. //4号串口
  99. #define UART_ARM_Periph UART4
  100. #define UART_ARM_IRQ_Handler UART4_IRQHandler
  101. #define UART_ARM_IRQ UART4_IRQn
  102. #define UART_ARM_RccOpen() RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4,ENABLE)
  103. #if UART_ARM_ReMap_Num == 0
  104. //4号串口不映射,使用PC10,PC11
  105. #define UART_ARM_Tx_Port GPIOC
  106. #define UART_ARM_Tx_Line GPIO_Pin_10
  107. #define UART_ARM_Tx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE)
  108. #define UART_ARM_Rx_Port GPIOC
  109. #define UART_ARM_Rx_Line GPIO_Pin_11
  110. #define UART_ARM_Rx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE)
  111. #define UART_ARM_Remap()
  112. #elif UART_ARM_ReMap_Num == 1
  113. //4号端口没有其它映射
  114. #endif
  115. #elif UART_ARM_Periph_Num == 5
  116. //5号串口
  117. #define UART_ARM_Periph UART5
  118. #define UART_ARM_IRQ_Handler UART5_IRQHandler
  119. #define UART_ARM_IRQ UART5_IRQn
  120. #define UART_ARM_RccOpen() RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART5,ENABLE)
  121. #if UART_ARM_ReMap_Num == 0
  122. //5号串口不映射,使用PC12,PD2
  123. #define UART_ARM_Tx_Port GPIOC
  124. #define UART_ARM_Tx_Line GPIO_Pin_12
  125. #define UART_ARM_Tx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE)
  126. #define UART_ARM_Rx_Port GPIOD
  127. #define UART_ARM_Rx_Line GPIO_Pin_2
  128. #define UART_ARM_Rx_RccOpen() RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE)
  129. #define UART_ARM_Remap()
  130. #elif UART_ARM_ReMap_Num == 1
  131. //5号端口没有其它映射
  132. #endif
  133. #endif
  134. #endif