/** | |
****************************************************************************** | |
* @file UART/UART_WakeUpFromStopUsingFIFO/CM7/Src/stm32h7xx_hal_msp.c | |
* @author MCD Application Team | |
* @brief HAL MSP module. | |
****************************************************************************** | |
* @attention | |
* | |
* <h2><center>© Copyright (c) 2018 STMicroelectronics. | |
* All rights reserved.</center></h2> | |
* | |
* This software component is licensed by ST under BSD 3-Clause license, | |
* the "License"; You may not use this file except in compliance with the | |
* License. You may obtain a copy of the License at: | |
* opensource.org/licenses/BSD-3-Clause | |
* | |
****************************************************************************** | |
*/ | |
/* Includes ------------------------------------------------------------------*/ | |
/* Includes ------------------------------------------------------------------*/ | |
#include "stm32h7xx_hal.h" | |
#include "stm32h745i_discovery.h" | |
/* Exported types ------------------------------------------------------------*/ | |
/* Exported constants --------------------------------------------------------*/ | |
/* User can use this section to tailor USARTx/UARTx instance used and associated | |
resources */ | |
#define USARTx USART3 | |
#define USARTx_CLK_ENABLE() __HAL_RCC_USART3_CLK_ENABLE() | |
#define USARTx_RX_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() | |
#define USARTx_TX_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() | |
#define RCC_PERIPHCLK_USARTx RCC_PERIPHCLK_USART3 | |
#define RCC_USARTxCLKSOURCE_HSI RCC_USART3CLKSOURCE_HSI | |
#define USARTx_FORCE_RESET() __HAL_RCC_USART3_FORCE_RESET() | |
#define USARTx_RELEASE_RESET() __HAL_RCC_USART3_RELEASE_RESET() | |
#define USARTx_IRQn USART3_IRQn | |
#define USARTx_IRQHandler USART3_IRQHandler | |
#define USARTx_TX_PIN GPIO_PIN_10 | |
#define USARTx_TX_GPIO_PORT GPIOB | |
#define USARTx_TX_AF GPIO_AF7_USART3 | |
#define USARTx_RX_PIN GPIO_PIN_11 | |
#define USARTx_RX_GPIO_PORT GPIOB | |
#define USARTx_RX_AF GPIO_AF7_USART3 | |
/** @addtogroup STM32H7xx_HAL_Examples | |
* @{ | |
*/ | |
/** @defgroup HAL_MSP | |
* @brief HAL MSP module. | |
* @{ | |
*/ | |
/* Private typedef -----------------------------------------------------------*/ | |
/* Private define ------------------------------------------------------------*/ | |
/* Private macro -------------------------------------------------------------*/ | |
/* Private variables ---------------------------------------------------------*/ | |
/* Private function prototypes -----------------------------------------------*/ | |
/* Private functions ---------------------------------------------------------*/ | |
/** @defgroup HAL_MSP_Private_Functions | |
* @{ | |
*/ | |
/** | |
* @brief UART MSP Initialization | |
* This function configures the hardware resources used in this example: | |
* - Peripheral's clock enable | |
* - Peripheral's GPIO Configuration | |
* @param huart: UART handle pointer | |
* @retval None | |
*/ | |
void HAL_UART_MspInit(UART_HandleTypeDef *huart) | |
{ | |
GPIO_InitTypeDef GPIO_InitStruct; | |
RCC_PeriphCLKInitTypeDef RCC_PeriphClkInit; | |
/*##-1- Enable peripherals and GPIO Clocks #################################*/ | |
/* Enable GPIO TX/RX clock */ | |
USARTx_TX_GPIO_CLK_ENABLE(); | |
USARTx_RX_GPIO_CLK_ENABLE(); | |
/* Select HSI as source of USARTx clocks */ | |
RCC_PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USARTx; | |
RCC_PeriphClkInit.Usart234578ClockSelection = RCC_USARTxCLKSOURCE_HSI; | |
HAL_RCCEx_PeriphCLKConfig(&RCC_PeriphClkInit); | |
/* Enable USARTx clock */ | |
USARTx_CLK_ENABLE(); | |
/*##-2- Configure peripheral GPIO ##########################################*/ | |
/* UART TX GPIO pin configuration */ | |
GPIO_InitStruct.Pin = USARTx_TX_PIN; | |
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; | |
GPIO_InitStruct.Pull = GPIO_PULLUP; | |
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; | |
GPIO_InitStruct.Alternate = USARTx_TX_AF; | |
HAL_GPIO_Init(USARTx_TX_GPIO_PORT, &GPIO_InitStruct); | |
/* UART RX GPIO pin configuration */ | |
GPIO_InitStruct.Pin = USARTx_RX_PIN; | |
GPIO_InitStruct.Alternate = USARTx_RX_AF; | |
HAL_GPIO_Init(USARTx_RX_GPIO_PORT, &GPIO_InitStruct); | |
/* NVIC for USART */ | |
HAL_NVIC_SetPriority(USARTx_IRQn, 0, 1); | |
HAL_NVIC_EnableIRQ(USARTx_IRQn); | |
} | |
/** | |
* @brief UART MSP De-Initialization | |
* This function frees the hardware resources used in this example: | |
* - Disable the Peripheral's clock | |
* - Revert GPIO and NVIC configuration to their default state | |
* @param huart: UART handle pointer | |
* @retval None | |
*/ | |
void HAL_UART_MspDeInit(UART_HandleTypeDef *huart) | |
{ | |
/*##-1- Reset peripherals ##################################################*/ | |
USARTx_FORCE_RESET(); | |
USARTx_RELEASE_RESET(); | |
/*##-2- Disable peripherals and GPIO Clocks ################################*/ | |
/* Configure UART Tx as alternate function */ | |
HAL_GPIO_DeInit(USARTx_TX_GPIO_PORT, USARTx_TX_PIN); | |
/* Configure UART Rx as alternate function */ | |
HAL_GPIO_DeInit(USARTx_RX_GPIO_PORT, USARTx_RX_PIN); | |
} | |
/** | |
* @} | |
*/ | |
/** | |
* @} | |
*/ | |
/** | |
* @} | |
*/ | |
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |