1 /* USER CODE BEGIN Header */
2 /**
3 ******************************************************************************
4 * File Name : stm32l4xx_hal_msp.c
5 * Description : This file provides code for the MSP Initialization
6 * and de-Initialization codes.
7 ******************************************************************************
8 * @attention
9 *
10 * <h2><center>© Copyright (c) 2020 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
26 /* USER CODE END Includes */
27 extern DMA_HandleTypeDef hdma_spi1_rx;
28
29 extern DMA_HandleTypeDef hdma_spi1_tx;
30
31 /* Private typedef -----------------------------------------------------------*/
32 /* USER CODE BEGIN TD */
33
34 /* USER CODE END TD */
35
36 /* Private define ------------------------------------------------------------*/
37 /* USER CODE BEGIN Define */
38
39 /* USER CODE END Define */
40
41 /* Private macro -------------------------------------------------------------*/
42 /* USER CODE BEGIN Macro */
43
44 /* USER CODE END Macro */
45
46 /* Private variables ---------------------------------------------------------*/
47 /* USER CODE BEGIN PV */
48
49 /* USER CODE END PV */
50
51 /* Private function prototypes -----------------------------------------------*/
52 /* USER CODE BEGIN PFP */
53
54 /* USER CODE END PFP */
55
56 /* External functions --------------------------------------------------------*/
57 /* USER CODE BEGIN ExternalFunctions */
58
59 /* USER CODE END ExternalFunctions */
60
61 /* USER CODE BEGIN 0 */
62
63 /* USER CODE END 0 */
64 /**
65 * Initializes the Global MSP.
66 */
HAL_MspInit(void)67 void HAL_MspInit(void)
68 {
69 /* USER CODE BEGIN MspInit 0 */
70
71 /* USER CODE END MspInit 0 */
72
73 __HAL_RCC_SYSCFG_CLK_ENABLE();
74 __HAL_RCC_PWR_CLK_ENABLE();
75
76 /* System interrupt init*/
77
78 /* USER CODE BEGIN MspInit 1 */
79
80 /* USER CODE END MspInit 1 */
81 }
82
83 /**
84 * @brief LPTIM MSP Initialization
85 * This function configures the hardware resources used in this example
86 * @param hlptim: LPTIM handle pointer
87 * @retval None
88 */
HAL_LPTIM_MspInit(LPTIM_HandleTypeDef * hlptim)89 void HAL_LPTIM_MspInit(LPTIM_HandleTypeDef* hlptim)
90 {
91 if(hlptim->Instance==LPTIM1)
92 {
93 /* USER CODE BEGIN LPTIM1_MspInit 0 */
94
95 /* USER CODE END LPTIM1_MspInit 0 */
96 /* Peripheral clock enable */
97 __HAL_RCC_LPTIM1_CLK_ENABLE();
98 /* LPTIM1 interrupt Init */
99 HAL_NVIC_SetPriority(LPTIM1_IRQn, 0, 0);
100 HAL_NVIC_EnableIRQ(LPTIM1_IRQn);
101 /* USER CODE BEGIN LPTIM1_MspInit 1 */
102
103 /* USER CODE END LPTIM1_MspInit 1 */
104 }
105
106 }
107
108 /**
109 * @brief LPTIM MSP De-Initialization
110 * This function freeze the hardware resources used in this example
111 * @param hlptim: LPTIM handle pointer
112 * @retval None
113 */
HAL_LPTIM_MspDeInit(LPTIM_HandleTypeDef * hlptim)114 void HAL_LPTIM_MspDeInit(LPTIM_HandleTypeDef* hlptim)
115 {
116 if(hlptim->Instance==LPTIM1)
117 {
118 /* USER CODE BEGIN LPTIM1_MspDeInit 0 */
119
120 /* USER CODE END LPTIM1_MspDeInit 0 */
121 /* Peripheral clock disable */
122 __HAL_RCC_LPTIM1_CLK_DISABLE();
123
124 /* LPTIM1 interrupt DeInit */
125 HAL_NVIC_DisableIRQ(LPTIM1_IRQn);
126 /* USER CODE BEGIN LPTIM1_MspDeInit 1 */
127
128 /* USER CODE END LPTIM1_MspDeInit 1 */
129 }
130
131 }
132
133 /**
134 * @brief SPI MSP Initialization
135 * This function configures the hardware resources used in this example
136 * @param hspi: SPI handle pointer
137 * @retval None
138 */
HAL_SPI_MspInit(SPI_HandleTypeDef * hspi)139 void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
140 {
141 GPIO_InitTypeDef GPIO_InitStruct = {0};
142 if(hspi->Instance==SPI1)
143 {
144 /* USER CODE BEGIN SPI1_MspInit 0 */
145
146 /* USER CODE END SPI1_MspInit 0 */
147 /* Peripheral clock enable */
148 __HAL_RCC_SPI1_CLK_ENABLE();
149
150 __HAL_RCC_GPIOA_CLK_ENABLE();
151 /**SPI1 GPIO Configuration
152 PA5 ------> SPI1_SCK
153 PA6 ------> SPI1_MISO
154 PA7 ------> SPI1_MOSI
155 */
156 GPIO_InitStruct.Pin = RADIO_SCK_Pin|RADIO_MISO_Pin|RADIO_MOSI_Pin;
157 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
158 GPIO_InitStruct.Pull = GPIO_NOPULL;
159 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
160 GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
161 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
162
163 /* SPI1 DMA Init */
164 /* SPI1_RX Init */
165 hdma_spi1_rx.Instance = DMA1_Channel2;
166 hdma_spi1_rx.Init.Request = DMA_REQUEST_1;
167 hdma_spi1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
168 hdma_spi1_rx.Init.PeriphInc = DMA_PINC_DISABLE;
169 hdma_spi1_rx.Init.MemInc = DMA_MINC_ENABLE;
170 hdma_spi1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
171 hdma_spi1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
172 hdma_spi1_rx.Init.Mode = DMA_NORMAL;
173 hdma_spi1_rx.Init.Priority = DMA_PRIORITY_HIGH;
174 if (HAL_DMA_Init(&hdma_spi1_rx) != HAL_OK)
175 {
176 Error_Handler();
177 }
178
179 __HAL_LINKDMA(hspi,hdmarx,hdma_spi1_rx);
180
181 /* SPI1_TX Init */
182 hdma_spi1_tx.Instance = DMA1_Channel3;
183 hdma_spi1_tx.Init.Request = DMA_REQUEST_1;
184 hdma_spi1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
185 hdma_spi1_tx.Init.PeriphInc = DMA_PINC_DISABLE;
186 hdma_spi1_tx.Init.MemInc = DMA_MINC_ENABLE;
187 hdma_spi1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
188 hdma_spi1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
189 hdma_spi1_tx.Init.Mode = DMA_NORMAL;
190 hdma_spi1_tx.Init.Priority = DMA_PRIORITY_HIGH;
191 if (HAL_DMA_Init(&hdma_spi1_tx) != HAL_OK)
192 {
193 Error_Handler();
194 }
195
196 __HAL_LINKDMA(hspi,hdmatx,hdma_spi1_tx);
197
198 /* USER CODE BEGIN SPI1_MspInit 1 */
199
200 /* USER CODE END SPI1_MspInit 1 */
201 }
202
203 }
204
205 /**
206 * @brief SPI MSP De-Initialization
207 * This function freeze the hardware resources used in this example
208 * @param hspi: SPI handle pointer
209 * @retval None
210 */
HAL_SPI_MspDeInit(SPI_HandleTypeDef * hspi)211 void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
212 {
213 if(hspi->Instance==SPI1)
214 {
215 /* USER CODE BEGIN SPI1_MspDeInit 0 */
216
217 /* USER CODE END SPI1_MspDeInit 0 */
218 /* Peripheral clock disable */
219 __HAL_RCC_SPI1_CLK_DISABLE();
220
221 /**SPI1 GPIO Configuration
222 PA5 ------> SPI1_SCK
223 PA6 ------> SPI1_MISO
224 PA7 ------> SPI1_MOSI
225 */
226 HAL_GPIO_DeInit(GPIOA, RADIO_SCK_Pin|RADIO_MISO_Pin|RADIO_MOSI_Pin);
227
228 /* SPI1 DMA DeInit */
229 HAL_DMA_DeInit(hspi->hdmarx);
230 HAL_DMA_DeInit(hspi->hdmatx);
231 /* USER CODE BEGIN SPI1_MspDeInit 1 */
232
233 /* USER CODE END SPI1_MspDeInit 1 */
234 }
235
236 }
237
238 /**
239 * @brief UART MSP Initialization
240 * This function configures the hardware resources used in this example
241 * @param huart: UART handle pointer
242 * @retval None
243 */
HAL_UART_MspInit(UART_HandleTypeDef * huart)244 void HAL_UART_MspInit(UART_HandleTypeDef* huart)
245 {
246 GPIO_InitTypeDef GPIO_InitStruct = {0};
247 if(huart->Instance==USART2)
248 {
249 /* USER CODE BEGIN USART2_MspInit 0 */
250
251 /* USER CODE END USART2_MspInit 0 */
252 /* Peripheral clock enable */
253 __HAL_RCC_USART2_CLK_ENABLE();
254
255 __HAL_RCC_GPIOA_CLK_ENABLE();
256 /**USART2 GPIO Configuration
257 PA2 ------> USART2_TX
258 PA3 ------> USART2_RX
259 */
260 GPIO_InitStruct.Pin = USART_TX_Pin|USART_RX_Pin;
261 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
262 GPIO_InitStruct.Pull = GPIO_NOPULL;
263 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
264 GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
265 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
266
267 /* USER CODE BEGIN USART2_MspInit 1 */
268
269 /* USER CODE END USART2_MspInit 1 */
270 }
271
272 }
273
274 /**
275 * @brief UART MSP De-Initialization
276 * This function freeze the hardware resources used in this example
277 * @param huart: UART handle pointer
278 * @retval None
279 */
HAL_UART_MspDeInit(UART_HandleTypeDef * huart)280 void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
281 {
282 if(huart->Instance==USART2)
283 {
284 /* USER CODE BEGIN USART2_MspDeInit 0 */
285
286 /* USER CODE END USART2_MspDeInit 0 */
287 /* Peripheral clock disable */
288 __HAL_RCC_USART2_CLK_DISABLE();
289
290 /**USART2 GPIO Configuration
291 PA2 ------> USART2_TX
292 PA3 ------> USART2_RX
293 */
294 HAL_GPIO_DeInit(GPIOA, USART_TX_Pin|USART_RX_Pin);
295
296 /* USER CODE BEGIN USART2_MspDeInit 1 */
297
298 /* USER CODE END USART2_MspDeInit 1 */
299 }
300
301 }
302
303 /* USER CODE BEGIN 1 */
304
305 /* USER CODE END 1 */
306
307 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
308