652 lines
18 KiB
C
652 lines
18 KiB
C
/* USER CODE BEGIN Header */
|
|
/**
|
|
******************************************************************************
|
|
* File Name : stm32f4xx_hal_msp.c
|
|
* Description : This file provides code for the MSP Initialization
|
|
* and de-Initialization codes.
|
|
******************************************************************************
|
|
* @attention
|
|
*
|
|
* <h2><center>© Copyright (c) 2020 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
|
|
*
|
|
******************************************************************************
|
|
*/
|
|
/* USER CODE END Header */
|
|
|
|
/* Includes ------------------------------------------------------------------*/
|
|
#include "main.h"
|
|
/* USER CODE BEGIN Includes */
|
|
|
|
/* USER CODE END Includes */
|
|
|
|
/* Private typedef -----------------------------------------------------------*/
|
|
/* USER CODE BEGIN TD */
|
|
|
|
/* USER CODE END TD */
|
|
|
|
/* Private define ------------------------------------------------------------*/
|
|
/* USER CODE BEGIN Define */
|
|
|
|
/* USER CODE END Define */
|
|
|
|
/* Private macro -------------------------------------------------------------*/
|
|
/* USER CODE BEGIN Macro */
|
|
|
|
/* USER CODE END Macro */
|
|
|
|
/* Private variables ---------------------------------------------------------*/
|
|
/* USER CODE BEGIN PV */
|
|
|
|
/* USER CODE END PV */
|
|
|
|
/* Private function prototypes -----------------------------------------------*/
|
|
/* USER CODE BEGIN PFP */
|
|
|
|
/* USER CODE END PFP */
|
|
|
|
/* External functions --------------------------------------------------------*/
|
|
/* USER CODE BEGIN ExternalFunctions */
|
|
|
|
/* USER CODE END ExternalFunctions */
|
|
|
|
/* USER CODE BEGIN 0 */
|
|
|
|
/* USER CODE END 0 */
|
|
/**
|
|
* Initializes the Global MSP.
|
|
*/
|
|
void HAL_MspInit(void)
|
|
{
|
|
/* USER CODE BEGIN MspInit 0 */
|
|
|
|
/* USER CODE END MspInit 0 */
|
|
|
|
__HAL_RCC_SYSCFG_CLK_ENABLE();
|
|
__HAL_RCC_PWR_CLK_ENABLE();
|
|
|
|
/* System interrupt init*/
|
|
|
|
/* Peripheral interrupt init */
|
|
/* PVD_IRQn interrupt configuration */
|
|
HAL_NVIC_SetPriority(PVD_IRQn, 0, 0);
|
|
HAL_NVIC_EnableIRQ(PVD_IRQn);
|
|
|
|
/* USER CODE BEGIN MspInit 1 */
|
|
|
|
/* USER CODE END MspInit 1 */
|
|
}
|
|
|
|
/**
|
|
* @brief ADC MSP Initialization
|
|
* This function configures the hardware resources used in this example
|
|
* @param hadc: ADC handle pointer
|
|
* @retval None
|
|
*/
|
|
void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
|
|
{
|
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
|
if(hadc->Instance==ADC1)
|
|
{
|
|
/* USER CODE BEGIN ADC1_MspInit 0 */
|
|
|
|
/* USER CODE END ADC1_MspInit 0 */
|
|
/* Peripheral clock enable */
|
|
__HAL_RCC_ADC1_CLK_ENABLE();
|
|
|
|
__HAL_RCC_GPIOC_CLK_ENABLE();
|
|
__HAL_RCC_GPIOA_CLK_ENABLE();
|
|
/**ADC1 GPIO Configuration
|
|
PC1 ------> ADC1_IN11
|
|
PA4 ------> ADC1_IN4
|
|
PC4 ------> ADC1_IN14
|
|
PA2 ------> ADC1_IN2
|
|
PA6 ------> ADC1_IN6
|
|
PC5 ------> ADC1_IN15
|
|
*/
|
|
GPIO_InitStruct.Pin = ARDUINO_ADC_IN3_Pin|ARDUINO_ADC_IN4_Pin|ARDUINO_ADC_IN5_Pin;
|
|
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
|
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
|
|
|
|
GPIO_InitStruct.Pin = ARDUINO_ADC_IN1_Pin|ARDUINO_ADC_IN0_Pin|ARDUINO_ADC_IN2_Pin;
|
|
GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
|
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
|
|
|
/* USER CODE BEGIN ADC1_MspInit 1 */
|
|
|
|
/* USER CODE END ADC1_MspInit 1 */
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* @brief ADC MSP De-Initialization
|
|
* This function freeze the hardware resources used in this example
|
|
* @param hadc: ADC handle pointer
|
|
* @retval None
|
|
*/
|
|
void HAL_ADC_MspDeInit(ADC_HandleTypeDef* hadc)
|
|
{
|
|
if(hadc->Instance==ADC1)
|
|
{
|
|
/* USER CODE BEGIN ADC1_MspDeInit 0 */
|
|
|
|
/* USER CODE END ADC1_MspDeInit 0 */
|
|
/* Peripheral clock disable */
|
|
__HAL_RCC_ADC1_CLK_DISABLE();
|
|
|
|
/**ADC1 GPIO Configuration
|
|
PC1 ------> ADC1_IN11
|
|
PA4 ------> ADC1_IN4
|
|
PC4 ------> ADC1_IN14
|
|
PA2 ------> ADC1_IN2
|
|
PA6 ------> ADC1_IN6
|
|
PC5 ------> ADC1_IN15
|
|
*/
|
|
HAL_GPIO_DeInit(GPIOC, ARDUINO_ADC_IN3_Pin|ARDUINO_ADC_IN4_Pin|ARDUINO_ADC_IN5_Pin);
|
|
|
|
HAL_GPIO_DeInit(GPIOA, ARDUINO_ADC_IN1_Pin|ARDUINO_ADC_IN0_Pin|ARDUINO_ADC_IN2_Pin);
|
|
|
|
/* USER CODE BEGIN ADC1_MspDeInit 1 */
|
|
|
|
/* USER CODE END ADC1_MspDeInit 1 */
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* @brief I2C MSP Initialization
|
|
* This function configures the hardware resources used in this example
|
|
* @param hi2c: I2C handle pointer
|
|
* @retval None
|
|
*/
|
|
void HAL_I2C_MspInit(I2C_HandleTypeDef* hi2c)
|
|
{
|
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
|
if(hi2c->Instance==I2C1)
|
|
{
|
|
/* USER CODE BEGIN I2C1_MspInit 0 */
|
|
|
|
/* USER CODE END I2C1_MspInit 0 */
|
|
|
|
__HAL_RCC_GPIOB_CLK_ENABLE();
|
|
/**I2C1 GPIO Configuration
|
|
PB8 ------> I2C1_SCL
|
|
PB7 ------> I2C1_SDA
|
|
*/
|
|
GPIO_InitStruct.Pin = I2C1_SCL_Pin|I2C1_SDA_Pin;
|
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
|
|
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
|
|
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
|
|
|
/* Peripheral clock enable */
|
|
__HAL_RCC_I2C1_CLK_ENABLE();
|
|
/* USER CODE BEGIN I2C1_MspInit 1 */
|
|
|
|
/* USER CODE END I2C1_MspInit 1 */
|
|
}
|
|
else if(hi2c->Instance==I2C3)
|
|
{
|
|
/* USER CODE BEGIN I2C3_MspInit 0 */
|
|
|
|
/* USER CODE END I2C3_MspInit 0 */
|
|
|
|
__HAL_RCC_GPIOC_CLK_ENABLE();
|
|
__HAL_RCC_GPIOH_CLK_ENABLE();
|
|
/**I2C3 GPIO Configuration
|
|
PC9 ------> I2C3_SDA
|
|
PH7 ------> I2C3_SCL
|
|
*/
|
|
GPIO_InitStruct.Pin = I2C3_SDA_Pin;
|
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
|
|
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
GPIO_InitStruct.Alternate = GPIO_AF4_I2C3;
|
|
HAL_GPIO_Init(I2C3_SDA_GPIO_Port, &GPIO_InitStruct);
|
|
|
|
GPIO_InitStruct.Pin = I2C3_SCL_Pin;
|
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
|
|
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
GPIO_InitStruct.Alternate = GPIO_AF4_I2C3;
|
|
HAL_GPIO_Init(I2C3_SCL_GPIO_Port, &GPIO_InitStruct);
|
|
|
|
/* Peripheral clock enable */
|
|
__HAL_RCC_I2C3_CLK_ENABLE();
|
|
/* USER CODE BEGIN I2C3_MspInit 1 */
|
|
|
|
/* USER CODE END I2C3_MspInit 1 */
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* @brief I2C MSP De-Initialization
|
|
* This function freeze the hardware resources used in this example
|
|
* @param hi2c: I2C handle pointer
|
|
* @retval None
|
|
*/
|
|
void HAL_I2C_MspDeInit(I2C_HandleTypeDef* hi2c)
|
|
{
|
|
if(hi2c->Instance==I2C1)
|
|
{
|
|
/* USER CODE BEGIN I2C1_MspDeInit 0 */
|
|
|
|
/* USER CODE END I2C1_MspDeInit 0 */
|
|
/* Peripheral clock disable */
|
|
__HAL_RCC_I2C1_CLK_DISABLE();
|
|
|
|
/**I2C1 GPIO Configuration
|
|
PB8 ------> I2C1_SCL
|
|
PB7 ------> I2C1_SDA
|
|
*/
|
|
HAL_GPIO_DeInit(GPIOB, I2C1_SCL_Pin|I2C1_SDA_Pin);
|
|
|
|
/* USER CODE BEGIN I2C1_MspDeInit 1 */
|
|
|
|
/* USER CODE END I2C1_MspDeInit 1 */
|
|
}
|
|
else if(hi2c->Instance==I2C3)
|
|
{
|
|
/* USER CODE BEGIN I2C3_MspDeInit 0 */
|
|
|
|
/* USER CODE END I2C3_MspDeInit 0 */
|
|
/* Peripheral clock disable */
|
|
__HAL_RCC_I2C3_CLK_DISABLE();
|
|
|
|
/**I2C3 GPIO Configuration
|
|
PC9 ------> I2C3_SDA
|
|
PH7 ------> I2C3_SCL
|
|
*/
|
|
HAL_GPIO_DeInit(I2C3_SDA_GPIO_Port, I2C3_SDA_Pin);
|
|
|
|
HAL_GPIO_DeInit(I2C3_SCL_GPIO_Port, I2C3_SCL_Pin);
|
|
|
|
/* USER CODE BEGIN I2C3_MspDeInit 1 */
|
|
|
|
/* USER CODE END I2C3_MspDeInit 1 */
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* @brief SPI MSP Initialization
|
|
* This function configures the hardware resources used in this example
|
|
* @param hspi: SPI handle pointer
|
|
* @retval None
|
|
*/
|
|
void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
|
|
{
|
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
|
if(hspi->Instance==SPI1)
|
|
{
|
|
/* USER CODE BEGIN SPI1_MspInit 0 */
|
|
|
|
/* USER CODE END SPI1_MspInit 0 */
|
|
/* Peripheral clock enable */
|
|
__HAL_RCC_SPI1_CLK_ENABLE();
|
|
|
|
__HAL_RCC_GPIOB_CLK_ENABLE();
|
|
__HAL_RCC_GPIOA_CLK_ENABLE();
|
|
/**SPI1 GPIO Configuration
|
|
PB4 ------> SPI1_MISO
|
|
PB3 ------> SPI1_SCK
|
|
PA7 ------> SPI1_MOSI
|
|
*/
|
|
GPIO_InitStruct.Pin = ARDUINO_GPIO12_MISO_Pin|ARDUINO_GPIO13_SCK_Pin;
|
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
|
|
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
|
|
|
|
GPIO_InitStruct.Pin = ARDUINO_GPIO11_MOSI_Pin;
|
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
|
|
HAL_GPIO_Init(ARDUINO_GPIO11_MOSI_GPIO_Port, &GPIO_InitStruct);
|
|
|
|
/* SPI1 interrupt Init */
|
|
HAL_NVIC_SetPriority(SPI1_IRQn, 0, 0);
|
|
HAL_NVIC_EnableIRQ(SPI1_IRQn);
|
|
/* USER CODE BEGIN SPI1_MspInit 1 */
|
|
|
|
/* USER CODE END SPI1_MspInit 1 */
|
|
}
|
|
else if(hspi->Instance==SPI5)
|
|
{
|
|
/* USER CODE BEGIN SPI5_MspInit 0 */
|
|
|
|
/* USER CODE END SPI5_MspInit 0 */
|
|
/* Peripheral clock enable */
|
|
__HAL_RCC_SPI5_CLK_ENABLE();
|
|
|
|
__HAL_RCC_GPIOF_CLK_ENABLE();
|
|
__HAL_RCC_GPIOH_CLK_ENABLE();
|
|
/**SPI5 GPIO Configuration
|
|
PF9 ------> SPI5_MOSI
|
|
PF8 ------> SPI5_MISO
|
|
PH6 ------> SPI5_SCK
|
|
*/
|
|
GPIO_InitStruct.Pin = SPI5_MOSI_Pin|SPI5_MISO_Pin;
|
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
GPIO_InitStruct.Alternate = GPIO_AF5_SPI5;
|
|
HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
|
|
|
|
GPIO_InitStruct.Pin = SPI5_SCK_Pin;
|
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
GPIO_InitStruct.Alternate = GPIO_AF5_SPI5;
|
|
HAL_GPIO_Init(SPI5_SCK_GPIO_Port, &GPIO_InitStruct);
|
|
|
|
/* USER CODE BEGIN SPI5_MspInit 1 */
|
|
|
|
/* USER CODE END SPI5_MspInit 1 */
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* @brief SPI MSP De-Initialization
|
|
* This function freeze the hardware resources used in this example
|
|
* @param hspi: SPI handle pointer
|
|
* @retval None
|
|
*/
|
|
void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
|
|
{
|
|
if(hspi->Instance==SPI1)
|
|
{
|
|
/* USER CODE BEGIN SPI1_MspDeInit 0 */
|
|
|
|
/* USER CODE END SPI1_MspDeInit 0 */
|
|
/* Peripheral clock disable */
|
|
__HAL_RCC_SPI1_CLK_DISABLE();
|
|
|
|
/**SPI1 GPIO Configuration
|
|
PB4 ------> SPI1_MISO
|
|
PB3 ------> SPI1_SCK
|
|
PA7 ------> SPI1_MOSI
|
|
*/
|
|
HAL_GPIO_DeInit(GPIOB, ARDUINO_GPIO12_MISO_Pin|ARDUINO_GPIO13_SCK_Pin);
|
|
|
|
HAL_GPIO_DeInit(ARDUINO_GPIO11_MOSI_GPIO_Port, ARDUINO_GPIO11_MOSI_Pin);
|
|
|
|
/* SPI1 interrupt DeInit */
|
|
HAL_NVIC_DisableIRQ(SPI1_IRQn);
|
|
/* USER CODE BEGIN SPI1_MspDeInit 1 */
|
|
|
|
/* USER CODE END SPI1_MspDeInit 1 */
|
|
}
|
|
else if(hspi->Instance==SPI5)
|
|
{
|
|
/* USER CODE BEGIN SPI5_MspDeInit 0 */
|
|
|
|
/* USER CODE END SPI5_MspDeInit 0 */
|
|
/* Peripheral clock disable */
|
|
__HAL_RCC_SPI5_CLK_DISABLE();
|
|
|
|
/**SPI5 GPIO Configuration
|
|
PF9 ------> SPI5_MOSI
|
|
PF8 ------> SPI5_MISO
|
|
PH6 ------> SPI5_SCK
|
|
*/
|
|
HAL_GPIO_DeInit(GPIOF, SPI5_MOSI_Pin|SPI5_MISO_Pin);
|
|
|
|
HAL_GPIO_DeInit(SPI5_SCK_GPIO_Port, SPI5_SCK_Pin);
|
|
|
|
/* USER CODE BEGIN SPI5_MspDeInit 1 */
|
|
|
|
/* USER CODE END SPI5_MspDeInit 1 */
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* @brief TIM_Base MSP Initialization
|
|
* This function configures the hardware resources used in this example
|
|
* @param htim_base: TIM_Base handle pointer
|
|
* @retval None
|
|
*/
|
|
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
|
|
{
|
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
|
if(htim_base->Instance==TIM2)
|
|
{
|
|
/* USER CODE BEGIN TIM2_MspInit 0 */
|
|
|
|
/* USER CODE END TIM2_MspInit 0 */
|
|
/* Peripheral clock enable */
|
|
__HAL_RCC_TIM2_CLK_ENABLE();
|
|
|
|
__HAL_RCC_GPIOA_CLK_ENABLE();
|
|
/**TIM2 GPIO Configuration
|
|
PA5 ------> TIM2_CH1
|
|
*/
|
|
GPIO_InitStruct.Pin = GPIO_PIN_5;
|
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
|
GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
|
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
|
|
|
/* USER CODE BEGIN TIM2_MspInit 1 */
|
|
|
|
/* USER CODE END TIM2_MspInit 1 */
|
|
}
|
|
else if(htim_base->Instance==TIM5)
|
|
{
|
|
/* USER CODE BEGIN TIM5_MspInit 0 */
|
|
|
|
/* USER CODE END TIM5_MspInit 0 */
|
|
/* Peripheral clock enable */
|
|
__HAL_RCC_TIM5_CLK_ENABLE();
|
|
|
|
__HAL_RCC_GPIOH_CLK_ENABLE();
|
|
/**TIM5 GPIO Configuration
|
|
PH10 ------> TIM5_CH1
|
|
*/
|
|
GPIO_InitStruct.Pin = GPIO_PIN_10;
|
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
|
GPIO_InitStruct.Alternate = GPIO_AF2_TIM5;
|
|
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
|
|
|
|
/* USER CODE BEGIN TIM5_MspInit 1 */
|
|
|
|
/* USER CODE END TIM5_MspInit 1 */
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* @brief TIM_Base MSP De-Initialization
|
|
* This function freeze the hardware resources used in this example
|
|
* @param htim_base: TIM_Base handle pointer
|
|
* @retval None
|
|
*/
|
|
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
|
|
{
|
|
if(htim_base->Instance==TIM2)
|
|
{
|
|
/* USER CODE BEGIN TIM2_MspDeInit 0 */
|
|
|
|
/* USER CODE END TIM2_MspDeInit 0 */
|
|
/* Peripheral clock disable */
|
|
__HAL_RCC_TIM2_CLK_DISABLE();
|
|
|
|
/**TIM2 GPIO Configuration
|
|
PA5 ------> TIM2_CH1
|
|
*/
|
|
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5);
|
|
|
|
/* USER CODE BEGIN TIM2_MspDeInit 1 */
|
|
|
|
/* USER CODE END TIM2_MspDeInit 1 */
|
|
}
|
|
else if(htim_base->Instance==TIM5)
|
|
{
|
|
/* USER CODE BEGIN TIM5_MspDeInit 0 */
|
|
|
|
/* USER CODE END TIM5_MspDeInit 0 */
|
|
/* Peripheral clock disable */
|
|
__HAL_RCC_TIM5_CLK_DISABLE();
|
|
|
|
/**TIM5 GPIO Configuration
|
|
PH10 ------> TIM5_CH1
|
|
*/
|
|
HAL_GPIO_DeInit(GPIOH, GPIO_PIN_10);
|
|
|
|
/* USER CODE BEGIN TIM5_MspDeInit 1 */
|
|
|
|
/* USER CODE END TIM5_MspDeInit 1 */
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* @brief UART MSP Initialization
|
|
* This function configures the hardware resources used in this example
|
|
* @param huart: UART handle pointer
|
|
* @retval None
|
|
*/
|
|
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
|
|
{
|
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
|
if(huart->Instance==UART4)
|
|
{
|
|
/* USER CODE BEGIN UART4_MspInit 0 */
|
|
|
|
/* USER CODE END UART4_MspInit 0 */
|
|
/* Peripheral clock enable */
|
|
__HAL_RCC_UART4_CLK_ENABLE();
|
|
|
|
__HAL_RCC_GPIOA_CLK_ENABLE();
|
|
/**UART4 GPIO Configuration
|
|
PA1 ------> UART4_RX
|
|
PA0/WKUP ------> UART4_TX
|
|
*/
|
|
GPIO_InitStruct.Pin = ARDUINO_GPIO0_UART4_RX_Pin|ARDUINO_GPIO1_UART4_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 = GPIO_AF8_UART4;
|
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
|
|
|
/* UART4 interrupt Init */
|
|
HAL_NVIC_SetPriority(UART4_IRQn, 0, 0);
|
|
HAL_NVIC_EnableIRQ(UART4_IRQn);
|
|
/* USER CODE BEGIN UART4_MspInit 1 */
|
|
|
|
/* USER CODE END UART4_MspInit 1 */
|
|
}
|
|
else if(huart->Instance==UART5)
|
|
{
|
|
/* USER CODE BEGIN UART5_MspInit 0 */
|
|
|
|
/* USER CODE END UART5_MspInit 0 */
|
|
/* Peripheral clock enable */
|
|
__HAL_RCC_UART5_CLK_ENABLE();
|
|
|
|
__HAL_RCC_GPIOC_CLK_ENABLE();
|
|
__HAL_RCC_GPIOD_CLK_ENABLE();
|
|
/**UART5 GPIO Configuration
|
|
PC12 ------> UART5_TX
|
|
PD2 ------> UART5_RX
|
|
*/
|
|
GPIO_InitStruct.Pin = UART5_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 = GPIO_AF8_UART5;
|
|
HAL_GPIO_Init(UART5_TX_GPIO_Port, &GPIO_InitStruct);
|
|
|
|
GPIO_InitStruct.Pin = UART5_RX_Pin;
|
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
|
GPIO_InitStruct.Alternate = GPIO_AF8_UART5;
|
|
HAL_GPIO_Init(UART5_RX_GPIO_Port, &GPIO_InitStruct);
|
|
|
|
/* UART5 interrupt Init */
|
|
HAL_NVIC_SetPriority(UART5_IRQn, 0, 0);
|
|
HAL_NVIC_EnableIRQ(UART5_IRQn);
|
|
/* USER CODE BEGIN UART5_MspInit 1 */
|
|
|
|
/* USER CODE END UART5_MspInit 1 */
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* @brief UART MSP De-Initialization
|
|
* This function freeze the hardware resources used in this example
|
|
* @param huart: UART handle pointer
|
|
* @retval None
|
|
*/
|
|
void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
|
|
{
|
|
if(huart->Instance==UART4)
|
|
{
|
|
/* USER CODE BEGIN UART4_MspDeInit 0 */
|
|
|
|
/* USER CODE END UART4_MspDeInit 0 */
|
|
/* Peripheral clock disable */
|
|
__HAL_RCC_UART4_CLK_DISABLE();
|
|
|
|
/**UART4 GPIO Configuration
|
|
PA1 ------> UART4_RX
|
|
PA0/WKUP ------> UART4_TX
|
|
*/
|
|
HAL_GPIO_DeInit(GPIOA, ARDUINO_GPIO0_UART4_RX_Pin|ARDUINO_GPIO1_UART4_TX_Pin);
|
|
|
|
/* UART4 interrupt DeInit */
|
|
HAL_NVIC_DisableIRQ(UART4_IRQn);
|
|
/* USER CODE BEGIN UART4_MspDeInit 1 */
|
|
|
|
/* USER CODE END UART4_MspDeInit 1 */
|
|
}
|
|
else if(huart->Instance==UART5)
|
|
{
|
|
/* USER CODE BEGIN UART5_MspDeInit 0 */
|
|
|
|
/* USER CODE END UART5_MspDeInit 0 */
|
|
/* Peripheral clock disable */
|
|
__HAL_RCC_UART5_CLK_DISABLE();
|
|
|
|
/**UART5 GPIO Configuration
|
|
PC12 ------> UART5_TX
|
|
PD2 ------> UART5_RX
|
|
*/
|
|
HAL_GPIO_DeInit(UART5_TX_GPIO_Port, UART5_TX_Pin);
|
|
|
|
HAL_GPIO_DeInit(UART5_RX_GPIO_Port, UART5_RX_Pin);
|
|
|
|
/* UART5 interrupt DeInit */
|
|
HAL_NVIC_DisableIRQ(UART5_IRQn);
|
|
/* USER CODE BEGIN UART5_MspDeInit 1 */
|
|
|
|
/* USER CODE END UART5_MspDeInit 1 */
|
|
}
|
|
|
|
}
|
|
|
|
/* USER CODE BEGIN 1 */
|
|
|
|
/* USER CODE END 1 */
|
|
|
|
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|