1 /* USER CODE BEGIN Header */ 2 /** 3 ****************************************************************************** 4 * @file stm32wlxx_hal_msp.c 5 * @brief This file provides code for the MSP Initialization 6 * and de-Initialization codes. 7 ****************************************************************************** 8 * @attention 9 * 10 * <h2><center>© Copyright (c) 2022 STMicroelectronics. 11 * All rights reserved.</center></h2> 12 * 13 * This software component is licensed by ST 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 /* USER CODE END Header */ 21 22 /* Includes ------------------------------------------------------------------*/ 23 #include "main.h" 24 /* USER CODE BEGIN Includes */ 25 #include <drv_common.h> 26 /* USER CODE END Includes */ 27 28 /* Private typedef -----------------------------------------------------------*/ 29 /* USER CODE BEGIN TD */ 30 31 /* USER CODE END TD */ 32 33 /* Private define ------------------------------------------------------------*/ 34 /* USER CODE BEGIN Define */ 35 36 /* USER CODE END Define */ 37 38 /* Private macro -------------------------------------------------------------*/ 39 /* USER CODE BEGIN Macro */ 40 41 /* USER CODE END Macro */ 42 43 /* Private variables ---------------------------------------------------------*/ 44 /* USER CODE BEGIN PV */ 45 46 /* USER CODE END PV */ 47 48 /* Private function prototypes -----------------------------------------------*/ 49 /* USER CODE BEGIN PFP */ 50 51 /* USER CODE END PFP */ 52 53 /* External functions --------------------------------------------------------*/ 54 /* USER CODE BEGIN ExternalFunctions */ 55 56 /* USER CODE END ExternalFunctions */ 57 58 /* USER CODE BEGIN 0 */ 59 60 /* USER CODE END 0 */ 61 /** 62 * Initializes the Global MSP. 63 */ HAL_MspInit(void)64void HAL_MspInit(void) 65 { 66 /* USER CODE BEGIN MspInit 0 */ 67 68 /* USER CODE END MspInit 0 */ 69 70 /* System interrupt init*/ 71 72 /* USER CODE BEGIN MspInit 1 */ 73 74 /* USER CODE END MspInit 1 */ 75 } 76 77 /** 78 * @brief UART MSP Initialization 79 * This function configures the hardware resources used in this example 80 * @param huart: UART handle pointer 81 * @retval None 82 */ HAL_UART_MspInit(UART_HandleTypeDef * huart)83void HAL_UART_MspInit(UART_HandleTypeDef* huart) 84 { 85 GPIO_InitTypeDef GPIO_InitStruct = {0}; 86 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; 87 if(huart->Instance==LPUART1) 88 { 89 /* USER CODE BEGIN LPUART1_MspInit 0 */ 90 91 /* USER CODE END LPUART1_MspInit 0 */ 92 /** Initializes the peripherals clocks 93 */ 94 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LPUART1; 95 PeriphClkInitStruct.Lpuart1ClockSelection = RCC_LPUART1CLKSOURCE_PCLK1; 96 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) 97 { 98 Error_Handler(); 99 } 100 101 /* Peripheral clock enable */ 102 __HAL_RCC_LPUART1_CLK_ENABLE(); 103 104 __HAL_RCC_GPIOA_CLK_ENABLE(); 105 /**LPUART1 GPIO Configuration 106 PA3 ------> LPUART1_RX 107 PA2 ------> LPUART1_TX 108 */ 109 GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_2; 110 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 111 GPIO_InitStruct.Pull = GPIO_PULLUP; 112 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 113 GPIO_InitStruct.Alternate = GPIO_AF8_LPUART1; 114 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); 115 116 /* USER CODE BEGIN LPUART1_MspInit 1 */ 117 118 /* USER CODE END LPUART1_MspInit 1 */ 119 } 120 else if(huart->Instance==USART1) 121 { 122 /* USER CODE BEGIN USART1_MspInit 0 */ 123 124 /* USER CODE END USART1_MspInit 0 */ 125 126 /** Initializes the peripherals clocks 127 */ 128 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART1; 129 PeriphClkInitStruct.Usart1ClockSelection = RCC_USART1CLKSOURCE_SYSCLK; 130 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) 131 { 132 Error_Handler(); 133 } 134 135 /* Peripheral clock enable */ 136 __HAL_RCC_USART1_CLK_ENABLE(); 137 138 __HAL_RCC_GPIOB_CLK_ENABLE(); 139 /**USART1 GPIO Configuration 140 PB7 ------> USART1_RX 141 PB6 ------> USART1_TX 142 */ 143 GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_6; 144 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 145 GPIO_InitStruct.Pull = GPIO_PULLUP; 146 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 147 GPIO_InitStruct.Alternate = GPIO_AF7_USART1; 148 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); 149 150 /* USER CODE BEGIN USART1_MspInit 1 */ 151 152 /* USER CODE END USART1_MspInit 1 */ 153 } 154 155 } 156 157 /** 158 * @brief UART MSP De-Initialization 159 * This function freeze the hardware resources used in this example 160 * @param huart: UART handle pointer 161 * @retval None 162 */ HAL_UART_MspDeInit(UART_HandleTypeDef * huart)163void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) 164 { 165 if(huart->Instance==LPUART1) 166 { 167 /* USER CODE BEGIN LPUART1_MspDeInit 0 */ 168 169 /* USER CODE END LPUART1_MspDeInit 0 */ 170 /* Peripheral clock disable */ 171 __HAL_RCC_LPUART1_CLK_DISABLE(); 172 173 /**LPUART1 GPIO Configuration 174 PA3 ------> LPUART1_RX 175 PA2 ------> LPUART1_TX 176 */ 177 HAL_GPIO_DeInit(GPIOA, GPIO_PIN_3|GPIO_PIN_2); 178 179 /* USER CODE BEGIN LPUART1_MspDeInit 1 */ 180 181 /* USER CODE END LPUART1_MspDeInit 1 */ 182 } 183 else if(huart->Instance==USART1) 184 { 185 /* USER CODE BEGIN USART1_MspDeInit 0 */ 186 187 /* USER CODE END USART1_MspDeInit 0 */ 188 /* Peripheral clock disable */ 189 __HAL_RCC_USART1_CLK_DISABLE(); 190 191 /**USART1 GPIO Configuration 192 PB7 ------> USART1_RX 193 PB6 ------> USART1_TX 194 */ 195 HAL_GPIO_DeInit(GPIOB, GPIO_PIN_7|GPIO_PIN_6); 196 197 /* USER CODE BEGIN USART1_MspDeInit 1 */ 198 199 /* USER CODE END USART1_MspDeInit 1 */ 200 } 201 202 } 203 204 /* USER CODE BEGIN 1 */ 205 206 /* USER CODE END 1 */ 207 208 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 209