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