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>© 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 21 /* Includes ------------------------------------------------------------------*/ 22 #include "main.h" 23 24 25 #define DBG_TAG "MSP LL" 26 #define DBG_LVL DBG_ERROR 27 #include "dbg/tae32f53xx_dbg.h" 28 29 30 /** @addtogroup TAE32F53xx_Examples 31 * @{ 32 */ 33 34 /** @addtogroup TAE32F53xx_UART_TxPolling_RxIT_Example 35 * @{ 36 */ 37 38 39 /* Private typedef -----------------------------------------------------------*/ 40 /* Private define ------------------------------------------------------------*/ 41 /* Private macro -------------------------------------------------------------*/ 42 /* Private variables ---------------------------------------------------------*/ 43 /* Private function prototypes -----------------------------------------------*/ 44 /* Exported functions --------------------------------------------------------*/ 45 /* Private functions ---------------------------------------------------------*/ 46 /** @defgroup UART_TxPolling_RxIT_MSP_LL_Private_Functions UART_TxPolling_RxIT MSP LL Private Functions 47 * @brief UART_TxPolling_RxIT MSP LL Private Functions 48 * @{ 49 */ 50 51 /** 52 * @brief Initializes the Global MSP. 53 * @param None 54 * @retval None 55 */ LL_MspInit(void)56void LL_MspInit(void) 57 { 58 //SYSCTRL PMU Config 59 LL_SYSCTRL_PMUCfg(); 60 61 #ifdef LL_GPIO_MODULE_ENABLED 62 //GPIO Msp Init 63 LL_SYSCTRL_GPIOA_ClkEnRstRelease(); 64 LL_SYSCTRL_GPIOB_ClkEnRstRelease(); 65 LL_SYSCTRL_GPIOC_ClkEnRstRelease(); 66 LL_SYSCTRL_GPIOD_ClkEnRstRelease(); 67 #endif 68 69 #ifdef LL_DMA_MODULE_ENABLED 70 //DMA Msp Init 71 LL_SYSCTRL_DMA_ClkEnRstRelease(); 72 73 //NVIC DMA Interrupt Enable 74 LL_NVIC_EnableIRQ(DMA_IRQn); 75 #endif 76 } 77 78 /** 79 * @brief DeInitializes the Global MSP. 80 * @param None 81 * @retval None 82 */ LL_MspDeInit(void)83void LL_MspDeInit(void) 84 { 85 #ifdef LL_GPIO_MODULE_ENABLED 86 //GPIO Msp DeInit 87 LL_SYSCTRL_GPIOA_ClkDisRstAssert(); 88 LL_SYSCTRL_GPIOB_ClkDisRstAssert(); 89 LL_SYSCTRL_GPIOC_ClkDisRstAssert(); 90 LL_SYSCTRL_GPIOD_ClkDisRstAssert(); 91 #endif 92 93 #ifdef LL_DMA_MODULE_ENABLED 94 //DMA Msp DeInit 95 LL_SYSCTRL_DMA_ClkDisRstAssert(); 96 97 //NVIC DMA Interrupt Disable 98 LL_NVIC_DisableIRQ(DMA_IRQn); 99 #endif 100 } 101 102 /** 103 * @brief Initializes the FPLL MSP. 104 * @param Instance Specifies FPLL peripheral 105 * @retval None 106 */ LL_FPLL_MspInit(FPLL_TypeDef * Instance)107void LL_FPLL_MspInit(FPLL_TypeDef *Instance) 108 { 109 //Check FPLL Instance to be Valid 110 if (!IS_FPLL_ALL_INSTANCE(Instance)) 111 { 112 return; 113 } 114 115 //FPLL Soft Reset Release 116 if (Instance == FPLL0) 117 { 118 LL_SYSCTRL_FPLL0_RstRelease(); 119 } 120 else if (Instance == FPLL1) 121 { 122 LL_SYSCTRL_FPLL1_RstRelease(); 123 } 124 else if (Instance == FPLL2) 125 { 126 LL_SYSCTRL_FPLL2_RstRelease(); 127 } 128 } 129 130 /** 131 * @brief DeInitializes the FPLL MSP. 132 * @param Instance Specifies FPLL peripheral 133 * @retval None 134 */ LL_FPLL_MspDeInit(FPLL_TypeDef * Instance)135void LL_FPLL_MspDeInit(FPLL_TypeDef *Instance) 136 { 137 //Check FPLL Instance to be Valid 138 if (!IS_FPLL_ALL_INSTANCE(Instance)) 139 { 140 return; 141 } 142 143 //FPLL Soft Reset Assert 144 if (Instance == FPLL0) 145 { 146 LL_SYSCTRL_FPLL0_RstAssert(); 147 } 148 else if (Instance == FPLL1) 149 { 150 LL_SYSCTRL_FPLL1_RstAssert(); 151 } 152 else if (Instance == FPLL2) 153 { 154 LL_SYSCTRL_FPLL2_RstAssert(); 155 } 156 } 157 158 /** 159 * @brief Initializes the UART MSP. 160 * @param Instance Specifies UART peripheral 161 * @retval None 162 */ LL_UART_MspInit(UART_TypeDef * Instance)163void LL_UART_MspInit(UART_TypeDef *Instance) 164 { 165 GPIO_InitTypeDef UART_GPIO_Init; 166 167 //Check UART Instance to be Valid 168 if (!IS_UART_ALL_INSTANCE(Instance)) 169 { 170 return; 171 } 172 173 if (Instance == UART0) 174 { 175 //UART0 Pinmux Config: PA10 & PA11 176 UART_GPIO_Init.Pin = GPIO_PIN_7; 177 UART_GPIO_Init.Mode = GPIO_MODE_AF; 178 UART_GPIO_Init.Alternate = GPIO_AF10_UART0; 179 LL_GPIO_Init(GPIOC, &UART_GPIO_Init); 180 181 UART_GPIO_Init.Pin = GPIO_PIN_10 | GPIO_PIN_11; 182 UART_GPIO_Init.Mode = GPIO_MODE_AF; 183 UART_GPIO_Init.OType = GPIO_OTYPE_PP; 184 UART_GPIO_Init.Pull = GPIO_NOPULL; 185 UART_GPIO_Init.Speed = GPIO_SPEED_FREQ_LOW; 186 UART_GPIO_Init.Alternate = GPIO_AF10_UART0; 187 LL_GPIO_Init(GPIOA, &UART_GPIO_Init); 188 189 //UART0 Bus Clock Enable and Soft Reset Release 190 LL_SYSCTRL_UART0_ClkEnRstRelease(); 191 192 //NVIC UART0 Interrupt Enable 193 LL_NVIC_EnableIRQ(UART0_IRQn); 194 } 195 else if (Instance == UART1) 196 { 197 //UART1 Pinmux Config: PB8 & PB9 198 UART_GPIO_Init.Pin = GPIO_PIN_8 | GPIO_PIN_9; 199 UART_GPIO_Init.Mode = GPIO_MODE_AF; 200 UART_GPIO_Init.OType = GPIO_OTYPE_PP; 201 UART_GPIO_Init.Pull = GPIO_NOPULL; 202 UART_GPIO_Init.Speed = GPIO_SPEED_FREQ_LOW; 203 UART_GPIO_Init.Alternate = GPIO_AF10_UART1; 204 LL_GPIO_Init(GPIOB, &UART_GPIO_Init); 205 206 //UART1 Bus Clock Enable and Soft Reset Release 207 LL_SYSCTRL_UART1_ClkEnRstRelease(); 208 209 //NVIC UART1 Interrupt Enable 210 LL_NVIC_EnableIRQ(UART1_IRQn); 211 } 212 } 213 214 /** 215 * @brief DeInitializes the UART MSP. 216 * @param Instance Specifies UART peripheral 217 * @retval None 218 */ LL_UART_MspDeInit(UART_TypeDef * Instance)219void LL_UART_MspDeInit(UART_TypeDef *Instance) 220 { 221 //Check UART Instance to be Valid 222 if (!IS_UART_ALL_INSTANCE(Instance)) 223 { 224 return; 225 } 226 227 if (Instance == UART0) 228 { 229 //NVIC UART0 Interrupt Disable 230 LL_NVIC_DisableIRQ(UART0_IRQn); 231 232 //UART0 Bus Clock Disable and Soft Reset Assert 233 LL_SYSCTRL_UART0_ClkDisRstAssert(); 234 235 //UART0 Pinmux DeInit 236 LL_GPIO_DeInit(GPIOA, GPIO_PIN_10 | GPIO_PIN_11); 237 } 238 else if (Instance == UART1) 239 { 240 //NVIC UART1 Interrupt Disable 241 LL_NVIC_DisableIRQ(UART1_IRQn); 242 243 //UART1 Bus Clock Disable and Soft Reset Assert 244 LL_SYSCTRL_UART1_ClkDisRstAssert(); 245 246 //UART1 Pinmux DeInit 247 LL_GPIO_DeInit(GPIOB, GPIO_PIN_8 | GPIO_PIN_9); 248 } 249 } 250 251 /** 252 * @} 253 */ 254 255 256 /** 257 * @} 258 */ 259 260 /** 261 * @} 262 */ 263 264 265 /************************* (C) COPYRIGHT Tai-Action *****END OF FILE***********/ 266 267