186 lines
5.1 KiB
C
186 lines
5.1 KiB
C
/**
|
|
******************************************************************************
|
|
* File Name : USART.c
|
|
* Description : This file provides code for the configuration
|
|
* of the USART instances.
|
|
******************************************************************************
|
|
* @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
|
|
*
|
|
******************************************************************************
|
|
*/
|
|
|
|
/* Includes ------------------------------------------------------------------*/
|
|
#include "usart.h"
|
|
|
|
/* USER CODE BEGIN 0 */
|
|
|
|
/* USER CODE END 0 */
|
|
|
|
UART_HandleTypeDef huart4;
|
|
UART_HandleTypeDef huart5;
|
|
|
|
/* UART4 init function */
|
|
void MX_UART4_Init(void)
|
|
{
|
|
|
|
huart4.Instance = UART4;
|
|
huart4.Init.BaudRate = 115200;
|
|
huart4.Init.WordLength = UART_WORDLENGTH_8B;
|
|
huart4.Init.StopBits = UART_STOPBITS_1;
|
|
huart4.Init.Parity = UART_PARITY_NONE;
|
|
huart4.Init.Mode = UART_MODE_TX_RX;
|
|
huart4.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
|
huart4.Init.OverSampling = UART_OVERSAMPLING_16;
|
|
if (HAL_UART_Init(&huart4) != HAL_OK)
|
|
{
|
|
Error_Handler();
|
|
}
|
|
|
|
}
|
|
/* UART5 init function */
|
|
void MX_UART5_Init(void)
|
|
{
|
|
|
|
huart5.Instance = UART5;
|
|
huart5.Init.BaudRate = 2400;
|
|
huart5.Init.WordLength = UART_WORDLENGTH_9B;
|
|
huart5.Init.StopBits = UART_STOPBITS_1;
|
|
huart5.Init.Parity = UART_PARITY_EVEN;
|
|
huart5.Init.Mode = UART_MODE_TX_RX;
|
|
huart5.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
|
huart5.Init.OverSampling = UART_OVERSAMPLING_16;
|
|
if (HAL_UART_Init(&huart5) != HAL_OK)
|
|
{
|
|
Error_Handler();
|
|
}
|
|
|
|
}
|
|
|
|
void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
|
|
{
|
|
|
|
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
|
if(uartHandle->Instance==UART4)
|
|
{
|
|
/* USER CODE BEGIN UART4_MspInit 0 */
|
|
|
|
/* USER CODE END UART4_MspInit 0 */
|
|
/* UART4 clock enable */
|
|
__HAL_RCC_UART4_CLK_ENABLE();
|
|
|
|
__HAL_RCC_GPIOC_CLK_ENABLE();
|
|
/**UART4 GPIO Configuration
|
|
PC10 ------> UART4_TX
|
|
PC11 ------> UART4_RX
|
|
*/
|
|
GPIO_InitStruct.Pin = Debug_TX_Pin;
|
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
|
HAL_GPIO_Init(Debug_TX_GPIO_Port, &GPIO_InitStruct);
|
|
|
|
GPIO_InitStruct.Pin = Debug_RX_Pin;
|
|
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
HAL_GPIO_Init(Debug_RX_GPIO_Port, &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(uartHandle->Instance==UART5)
|
|
{
|
|
/* USER CODE BEGIN UART5_MspInit 0 */
|
|
|
|
/* USER CODE END UART5_MspInit 0 */
|
|
/* UART5 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 = MBus_TX_Pin;
|
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
|
|
HAL_GPIO_Init(MBus_TX_GPIO_Port, &GPIO_InitStruct);
|
|
|
|
GPIO_InitStruct.Pin = MBus_RX_Pin;
|
|
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
HAL_GPIO_Init(MBus_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 */
|
|
}
|
|
}
|
|
|
|
void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
|
|
{
|
|
|
|
if(uartHandle->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
|
|
PC10 ------> UART4_TX
|
|
PC11 ------> UART4_RX
|
|
*/
|
|
HAL_GPIO_DeInit(GPIOC, Debug_TX_Pin|Debug_RX_Pin);
|
|
|
|
/* UART4 interrupt Deinit */
|
|
HAL_NVIC_DisableIRQ(UART4_IRQn);
|
|
/* USER CODE BEGIN UART4_MspDeInit 1 */
|
|
|
|
/* USER CODE END UART4_MspDeInit 1 */
|
|
}
|
|
else if(uartHandle->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(MBus_TX_GPIO_Port, MBus_TX_Pin);
|
|
|
|
HAL_GPIO_DeInit(MBus_RX_GPIO_Port, MBus_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****/
|