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>&copy; 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)64 void 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)83 void 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)163 void 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