stm32h7xx_hal_msp.c 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  1. /* USER CODE BEGIN Header */
  2. /**
  3. ******************************************************************************
  4. * @file stm32h7xx_hal_msp.c
  5. * @brief This file provides code for the MSP Initialization
  6. * and de-Initialization codes.
  7. ******************************************************************************
  8. * @attention
  9. *
  10. * Copyright (c) 2024 STMicroelectronics.
  11. * All rights reserved.
  12. *
  13. * This software is licensed under terms that can be found in the LICENSE file
  14. * in the root directory of this software component.
  15. * If no LICENSE file comes with this software, it is provided AS-IS.
  16. *
  17. ******************************************************************************
  18. */
  19. /* USER CODE END Header */
  20. /* Includes ------------------------------------------------------------------*/
  21. #include "main.h"
  22. /* USER CODE BEGIN Includes */
  23. /* USER CODE END Includes */
  24. extern DMA_HandleTypeDef hdma_uart8_rx;
  25. extern DMA_HandleTypeDef hdma_uart8_tx;
  26. /* Private typedef -----------------------------------------------------------*/
  27. /* USER CODE BEGIN TD */
  28. /* USER CODE END TD */
  29. /* Private define ------------------------------------------------------------*/
  30. /* USER CODE BEGIN Define */
  31. /* USER CODE END Define */
  32. /* Private macro -------------------------------------------------------------*/
  33. /* USER CODE BEGIN Macro */
  34. /* USER CODE END Macro */
  35. /* Private variables ---------------------------------------------------------*/
  36. /* USER CODE BEGIN PV */
  37. /* USER CODE END PV */
  38. /* Private function prototypes -----------------------------------------------*/
  39. /* USER CODE BEGIN PFP */
  40. /* USER CODE END PFP */
  41. /* External functions --------------------------------------------------------*/
  42. /* USER CODE BEGIN ExternalFunctions */
  43. /* USER CODE END ExternalFunctions */
  44. /* USER CODE BEGIN 0 */
  45. /* USER CODE END 0 */
  46. /**
  47. * Initializes the Global MSP.
  48. */
  49. void HAL_MspInit(void)
  50. {
  51. /* USER CODE BEGIN MspInit 0 */
  52. /* USER CODE END MspInit 0 */
  53. __HAL_RCC_SYSCFG_CLK_ENABLE();
  54. /* System interrupt init*/
  55. /* PendSV_IRQn interrupt configuration */
  56. HAL_NVIC_SetPriority(PendSV_IRQn, 15, 0);
  57. /* Peripheral interrupt init */
  58. /* RCC_IRQn interrupt configuration */
  59. HAL_NVIC_SetPriority(RCC_IRQn, 5, 0);
  60. HAL_NVIC_EnableIRQ(RCC_IRQn);
  61. /* USER CODE BEGIN MspInit 1 */
  62. /* USER CODE END MspInit 1 */
  63. }
  64. /**
  65. * @brief CRC MSP Initialization
  66. * This function configures the hardware resources used in this example
  67. * @param hcrc: CRC handle pointer
  68. * @retval None
  69. */
  70. void HAL_CRC_MspInit(CRC_HandleTypeDef* hcrc)
  71. {
  72. if(hcrc->Instance==CRC)
  73. {
  74. /* USER CODE BEGIN CRC_MspInit 0 */
  75. /* USER CODE END CRC_MspInit 0 */
  76. /* Peripheral clock enable */
  77. __HAL_RCC_CRC_CLK_ENABLE();
  78. /* USER CODE BEGIN CRC_MspInit 1 */
  79. /* USER CODE END CRC_MspInit 1 */
  80. }
  81. }
  82. /**
  83. * @brief CRC MSP De-Initialization
  84. * This function freeze the hardware resources used in this example
  85. * @param hcrc: CRC handle pointer
  86. * @retval None
  87. */
  88. void HAL_CRC_MspDeInit(CRC_HandleTypeDef* hcrc)
  89. {
  90. if(hcrc->Instance==CRC)
  91. {
  92. /* USER CODE BEGIN CRC_MspDeInit 0 */
  93. /* USER CODE END CRC_MspDeInit 0 */
  94. /* Peripheral clock disable */
  95. __HAL_RCC_CRC_CLK_DISABLE();
  96. /* USER CODE BEGIN CRC_MspDeInit 1 */
  97. /* USER CODE END CRC_MspDeInit 1 */
  98. }
  99. }
  100. /**
  101. * @brief RNG MSP Initialization
  102. * This function configures the hardware resources used in this example
  103. * @param hrng: RNG handle pointer
  104. * @retval None
  105. */
  106. void HAL_RNG_MspInit(RNG_HandleTypeDef* hrng)
  107. {
  108. RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
  109. if(hrng->Instance==RNG)
  110. {
  111. /* USER CODE BEGIN RNG_MspInit 0 */
  112. /* USER CODE END RNG_MspInit 0 */
  113. /** Initializes the peripherals clock
  114. */
  115. PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RNG;
  116. PeriphClkInitStruct.RngClockSelection = RCC_RNGCLKSOURCE_HSI48;
  117. if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
  118. {
  119. Error_Handler();
  120. }
  121. /* Peripheral clock enable */
  122. __HAL_RCC_RNG_CLK_ENABLE();
  123. /* USER CODE BEGIN RNG_MspInit 1 */
  124. /* USER CODE END RNG_MspInit 1 */
  125. }
  126. }
  127. /**
  128. * @brief RNG MSP De-Initialization
  129. * This function freeze the hardware resources used in this example
  130. * @param hrng: RNG handle pointer
  131. * @retval None
  132. */
  133. void HAL_RNG_MspDeInit(RNG_HandleTypeDef* hrng)
  134. {
  135. if(hrng->Instance==RNG)
  136. {
  137. /* USER CODE BEGIN RNG_MspDeInit 0 */
  138. /* USER CODE END RNG_MspDeInit 0 */
  139. /* Peripheral clock disable */
  140. __HAL_RCC_RNG_CLK_DISABLE();
  141. /* USER CODE BEGIN RNG_MspDeInit 1 */
  142. /* USER CODE END RNG_MspDeInit 1 */
  143. }
  144. }
  145. /**
  146. * @brief UART MSP Initialization
  147. * This function configures the hardware resources used in this example
  148. * @param huart: UART handle pointer
  149. * @retval None
  150. */
  151. void HAL_UART_MspInit(UART_HandleTypeDef* huart)
  152. {
  153. GPIO_InitTypeDef GPIO_InitStruct = {0};
  154. RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
  155. if(huart->Instance==UART8)
  156. {
  157. /* USER CODE BEGIN UART8_MspInit 0 */
  158. /* USER CODE END UART8_MspInit 0 */
  159. /** Initializes the peripherals clock
  160. */
  161. PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_UART8;
  162. PeriphClkInitStruct.Usart234578ClockSelection = RCC_USART234578CLKSOURCE_D2PCLK1;
  163. if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
  164. {
  165. Error_Handler();
  166. }
  167. /* Peripheral clock enable */
  168. __HAL_RCC_UART8_CLK_ENABLE();
  169. __HAL_RCC_GPIOE_CLK_ENABLE();
  170. /**UART8 GPIO Configuration
  171. PE0 ------> UART8_RX
  172. PE1 ------> UART8_TX
  173. */
  174. GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
  175. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  176. GPIO_InitStruct.Pull = GPIO_NOPULL;
  177. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  178. GPIO_InitStruct.Alternate = GPIO_AF8_UART8;
  179. HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
  180. /* UART8 DMA Init */
  181. /* UART8_RX Init */
  182. hdma_uart8_rx.Instance = DMA2_Stream7;
  183. hdma_uart8_rx.Init.Request = DMA_REQUEST_UART8_RX;
  184. hdma_uart8_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
  185. hdma_uart8_rx.Init.PeriphInc = DMA_PINC_DISABLE;
  186. hdma_uart8_rx.Init.MemInc = DMA_MINC_ENABLE;
  187. hdma_uart8_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
  188. hdma_uart8_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
  189. hdma_uart8_rx.Init.Mode = DMA_NORMAL;
  190. hdma_uart8_rx.Init.Priority = DMA_PRIORITY_VERY_HIGH;
  191. hdma_uart8_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
  192. if (HAL_DMA_Init(&hdma_uart8_rx) != HAL_OK)
  193. {
  194. Error_Handler();
  195. }
  196. __HAL_LINKDMA(huart,hdmarx,hdma_uart8_rx);
  197. /* UART8_TX Init */
  198. hdma_uart8_tx.Instance = DMA2_Stream6;
  199. hdma_uart8_tx.Init.Request = DMA_REQUEST_UART8_TX;
  200. hdma_uart8_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
  201. hdma_uart8_tx.Init.PeriphInc = DMA_PINC_DISABLE;
  202. hdma_uart8_tx.Init.MemInc = DMA_MINC_ENABLE;
  203. hdma_uart8_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
  204. hdma_uart8_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
  205. hdma_uart8_tx.Init.Mode = DMA_NORMAL;
  206. hdma_uart8_tx.Init.Priority = DMA_PRIORITY_VERY_HIGH;
  207. hdma_uart8_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
  208. if (HAL_DMA_Init(&hdma_uart8_tx) != HAL_OK)
  209. {
  210. Error_Handler();
  211. }
  212. __HAL_LINKDMA(huart,hdmatx,hdma_uart8_tx);
  213. /* UART8 interrupt Init */
  214. HAL_NVIC_SetPriority(UART8_IRQn, 5, 0);
  215. HAL_NVIC_EnableIRQ(UART8_IRQn);
  216. /* USER CODE BEGIN UART8_MspInit 1 */
  217. /* USER CODE END UART8_MspInit 1 */
  218. }
  219. }
  220. /**
  221. * @brief UART MSP De-Initialization
  222. * This function freeze the hardware resources used in this example
  223. * @param huart: UART handle pointer
  224. * @retval None
  225. */
  226. void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
  227. {
  228. if(huart->Instance==UART8)
  229. {
  230. /* USER CODE BEGIN UART8_MspDeInit 0 */
  231. /* USER CODE END UART8_MspDeInit 0 */
  232. /* Peripheral clock disable */
  233. __HAL_RCC_UART8_CLK_DISABLE();
  234. /**UART8 GPIO Configuration
  235. PE0 ------> UART8_RX
  236. PE1 ------> UART8_TX
  237. */
  238. HAL_GPIO_DeInit(GPIOE, GPIO_PIN_0|GPIO_PIN_1);
  239. /* UART8 DMA DeInit */
  240. HAL_DMA_DeInit(huart->hdmarx);
  241. HAL_DMA_DeInit(huart->hdmatx);
  242. /* UART8 interrupt DeInit */
  243. HAL_NVIC_DisableIRQ(UART8_IRQn);
  244. /* USER CODE BEGIN UART8_MspDeInit 1 */
  245. /* USER CODE END UART8_MspDeInit 1 */
  246. }
  247. }
  248. /* USER CODE BEGIN 1 */
  249. /* USER CODE END 1 */