tae32f53xx_ll_msp.c 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. /**
  2. ******************************************************************************
  3. * @file tae32f53xx_ll_msp.c
  4. * @author MCD Application Team
  5. * @brief LL MSP module.
  6. *
  7. ******************************************************************************
  8. * @attention
  9. *
  10. * <h2><center>&copy; Copyright (c) 2020 Tai-Action.
  11. * All rights reserved.</center></h2>
  12. *
  13. * This software is licensed by Tai-Action under BSD 3-Clause license,
  14. * the "License"; You may not use this file except in compliance with the
  15. * License. You may obtain a copy of the License at:
  16. * opensource.org/licenses/BSD-3-Clause
  17. *
  18. ******************************************************************************
  19. */
  20. /* Includes ------------------------------------------------------------------*/
  21. #include "main.h"
  22. #define DBG_TAG "MSP LL"
  23. #define DBG_LVL DBG_ERROR
  24. #include "dbg/tae32f53xx_dbg.h"
  25. /** @addtogroup TAE32F53xx_Examples
  26. * @{
  27. */
  28. /** @addtogroup TAE32F53xx_UART_TxPolling_RxIT_Example
  29. * @{
  30. */
  31. /* Private typedef -----------------------------------------------------------*/
  32. /* Private define ------------------------------------------------------------*/
  33. /* Private macro -------------------------------------------------------------*/
  34. /* Private variables ---------------------------------------------------------*/
  35. /* Private function prototypes -----------------------------------------------*/
  36. /* Exported functions --------------------------------------------------------*/
  37. /* Private functions ---------------------------------------------------------*/
  38. /** @defgroup UART_TxPolling_RxIT_MSP_LL_Private_Functions UART_TxPolling_RxIT MSP LL Private Functions
  39. * @brief UART_TxPolling_RxIT MSP LL Private Functions
  40. * @{
  41. */
  42. /**
  43. * @brief Initializes the Global MSP.
  44. * @param None
  45. * @retval None
  46. */
  47. void LL_MspInit(void)
  48. {
  49. //SYSCTRL PMU Config
  50. LL_SYSCTRL_PMUCfg();
  51. #ifdef LL_GPIO_MODULE_ENABLED
  52. //GPIO Msp Init
  53. LL_SYSCTRL_GPIOA_ClkEnRstRelease();
  54. LL_SYSCTRL_GPIOB_ClkEnRstRelease();
  55. LL_SYSCTRL_GPIOC_ClkEnRstRelease();
  56. LL_SYSCTRL_GPIOD_ClkEnRstRelease();
  57. #endif
  58. #ifdef LL_DMA_MODULE_ENABLED
  59. //DMA Msp Init
  60. LL_SYSCTRL_DMA_ClkEnRstRelease();
  61. //NVIC DMA Interrupt Enable
  62. LL_NVIC_EnableIRQ(DMA_IRQn);
  63. #endif
  64. }
  65. /**
  66. * @brief DeInitializes the Global MSP.
  67. * @param None
  68. * @retval None
  69. */
  70. void LL_MspDeInit(void)
  71. {
  72. #ifdef LL_GPIO_MODULE_ENABLED
  73. //GPIO Msp DeInit
  74. LL_SYSCTRL_GPIOA_ClkDisRstAssert();
  75. LL_SYSCTRL_GPIOB_ClkDisRstAssert();
  76. LL_SYSCTRL_GPIOC_ClkDisRstAssert();
  77. LL_SYSCTRL_GPIOD_ClkDisRstAssert();
  78. #endif
  79. #ifdef LL_DMA_MODULE_ENABLED
  80. //DMA Msp DeInit
  81. LL_SYSCTRL_DMA_ClkDisRstAssert();
  82. //NVIC DMA Interrupt Disable
  83. LL_NVIC_DisableIRQ(DMA_IRQn);
  84. #endif
  85. }
  86. /**
  87. * @brief Initializes the FPLL MSP.
  88. * @param Instance Specifies FPLL peripheral
  89. * @retval None
  90. */
  91. void LL_FPLL_MspInit(FPLL_TypeDef *Instance)
  92. {
  93. //Check FPLL Instance to be Valid
  94. if (!IS_FPLL_ALL_INSTANCE(Instance))
  95. {
  96. return;
  97. }
  98. //FPLL Soft Reset Release
  99. if (Instance == FPLL0)
  100. {
  101. LL_SYSCTRL_FPLL0_RstRelease();
  102. }
  103. else if (Instance == FPLL1)
  104. {
  105. LL_SYSCTRL_FPLL1_RstRelease();
  106. }
  107. else if (Instance == FPLL2)
  108. {
  109. LL_SYSCTRL_FPLL2_RstRelease();
  110. }
  111. }
  112. /**
  113. * @brief DeInitializes the FPLL MSP.
  114. * @param Instance Specifies FPLL peripheral
  115. * @retval None
  116. */
  117. void LL_FPLL_MspDeInit(FPLL_TypeDef *Instance)
  118. {
  119. //Check FPLL Instance to be Valid
  120. if (!IS_FPLL_ALL_INSTANCE(Instance))
  121. {
  122. return;
  123. }
  124. //FPLL Soft Reset Assert
  125. if (Instance == FPLL0)
  126. {
  127. LL_SYSCTRL_FPLL0_RstAssert();
  128. }
  129. else if (Instance == FPLL1)
  130. {
  131. LL_SYSCTRL_FPLL1_RstAssert();
  132. }
  133. else if (Instance == FPLL2)
  134. {
  135. LL_SYSCTRL_FPLL2_RstAssert();
  136. }
  137. }
  138. /**
  139. * @brief Initializes the UART MSP.
  140. * @param Instance Specifies UART peripheral
  141. * @retval None
  142. */
  143. void LL_UART_MspInit(UART_TypeDef *Instance)
  144. {
  145. GPIO_InitTypeDef UART_GPIO_Init;
  146. //Check UART Instance to be Valid
  147. if (!IS_UART_ALL_INSTANCE(Instance))
  148. {
  149. return;
  150. }
  151. if (Instance == UART0)
  152. {
  153. //UART0 Pinmux Config: PA10 & PA11
  154. UART_GPIO_Init.Pin = GPIO_PIN_7;
  155. UART_GPIO_Init.Mode = GPIO_MODE_AF;
  156. UART_GPIO_Init.Alternate = GPIO_AF10_UART0;
  157. LL_GPIO_Init(GPIOC, &UART_GPIO_Init);
  158. UART_GPIO_Init.Pin = GPIO_PIN_10 | GPIO_PIN_11;
  159. UART_GPIO_Init.Mode = GPIO_MODE_AF;
  160. UART_GPIO_Init.OType = GPIO_OTYPE_PP;
  161. UART_GPIO_Init.Pull = GPIO_NOPULL;
  162. UART_GPIO_Init.Speed = GPIO_SPEED_FREQ_LOW;
  163. UART_GPIO_Init.Alternate = GPIO_AF10_UART0;
  164. LL_GPIO_Init(GPIOA, &UART_GPIO_Init);
  165. //UART0 Bus Clock Enable and Soft Reset Release
  166. LL_SYSCTRL_UART0_ClkEnRstRelease();
  167. //NVIC UART0 Interrupt Enable
  168. LL_NVIC_EnableIRQ(UART0_IRQn);
  169. }
  170. else if (Instance == UART1)
  171. {
  172. //UART1 Pinmux Config: PB8 & PB9
  173. UART_GPIO_Init.Pin = GPIO_PIN_8 | GPIO_PIN_9;
  174. UART_GPIO_Init.Mode = GPIO_MODE_AF;
  175. UART_GPIO_Init.OType = GPIO_OTYPE_PP;
  176. UART_GPIO_Init.Pull = GPIO_NOPULL;
  177. UART_GPIO_Init.Speed = GPIO_SPEED_FREQ_LOW;
  178. UART_GPIO_Init.Alternate = GPIO_AF10_UART1;
  179. LL_GPIO_Init(GPIOB, &UART_GPIO_Init);
  180. //UART1 Bus Clock Enable and Soft Reset Release
  181. LL_SYSCTRL_UART1_ClkEnRstRelease();
  182. //NVIC UART1 Interrupt Enable
  183. LL_NVIC_EnableIRQ(UART1_IRQn);
  184. }
  185. }
  186. /**
  187. * @brief DeInitializes the UART MSP.
  188. * @param Instance Specifies UART peripheral
  189. * @retval None
  190. */
  191. void LL_UART_MspDeInit(UART_TypeDef *Instance)
  192. {
  193. //Check UART Instance to be Valid
  194. if (!IS_UART_ALL_INSTANCE(Instance))
  195. {
  196. return;
  197. }
  198. if (Instance == UART0)
  199. {
  200. //NVIC UART0 Interrupt Disable
  201. LL_NVIC_DisableIRQ(UART0_IRQn);
  202. //UART0 Bus Clock Disable and Soft Reset Assert
  203. LL_SYSCTRL_UART0_ClkDisRstAssert();
  204. //UART0 Pinmux DeInit
  205. LL_GPIO_DeInit(GPIOA, GPIO_PIN_10 | GPIO_PIN_11);
  206. }
  207. else if (Instance == UART1)
  208. {
  209. //NVIC UART1 Interrupt Disable
  210. LL_NVIC_DisableIRQ(UART1_IRQn);
  211. //UART1 Bus Clock Disable and Soft Reset Assert
  212. LL_SYSCTRL_UART1_ClkDisRstAssert();
  213. //UART1 Pinmux DeInit
  214. LL_GPIO_DeInit(GPIOB, GPIO_PIN_8 | GPIO_PIN_9);
  215. }
  216. }
  217. /**
  218. * @}
  219. */
  220. /**
  221. * @}
  222. */
  223. /**
  224. * @}
  225. */
  226. /************************* (C) COPYRIGHT Tai-Action *****END OF FILE***********/