xref: /btstack/port/stm32-l476rg-nucleo-sx1280/Src/stm32l4xx_hal_msp.c (revision 6b8177c56d8d42c688f52897394f8b5eac7ee972)
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>&copy; 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