You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#include "uart.h"
UART_HandleTypeDef huart4; UART_HandleTypeDef huart1;
DMA_HandleTypeDef hdma1_stream2; DMA_HandleTypeDef hdma1_stream4;
DMA_HandleTypeDef hdma2_stream2;
/**
* @brief UART4 Initialization Function * @param None * @retval None */ void UART4_Init(void) { GPIO_InitTypeDef GPIO_InitStruct;
huart4.Instance = UART4; huart4.Init.BaudRate = 256000; 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(); }
/**UART4 GPIO Configuration
PC10 ------> UART4_TX PC11 ------> UART4_RX */
/***********************************************************************************************************************
* DMA_INIT * ***********************************************************************************************************************/
/* UART4 DMA Init */ /* UART4_RX Init */ hdma1_stream2.Instance = DMA1_Stream2; hdma1_stream2.Init.Channel = DMA_CHANNEL_4; hdma1_stream2.Init.Direction = DMA_PERIPH_TO_MEMORY; hdma1_stream2.Init.PeriphInc = DMA_PINC_DISABLE; hdma1_stream2.Init.MemInc = DMA_MINC_ENABLE; hdma1_stream2.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; hdma1_stream2.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; hdma1_stream2.Init.Mode = DMA_NORMAL; hdma1_stream2.Init.Priority = DMA_PRIORITY_LOW; hdma1_stream2.Init.FIFOMode = DMA_FIFOMODE_DISABLE; if (HAL_DMA_Init(&hdma1_stream2) != HAL_OK) { Error_Handler(); }
__HAL_LINKDMA(&huart4, hdmarx, hdma1_stream2);
/* UART4_TX Init */ hdma1_stream4.Instance = DMA1_Stream4; hdma1_stream4.Init.Channel = DMA_CHANNEL_4; hdma1_stream4.Init.Direction = DMA_MEMORY_TO_PERIPH; hdma1_stream4.Init.PeriphInc = DMA_PINC_DISABLE; hdma1_stream4.Init.MemInc = DMA_MINC_ENABLE; hdma1_stream4.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; hdma1_stream4.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; hdma1_stream4.Init.Mode = DMA_NORMAL; hdma1_stream4.Init.Priority = DMA_PRIORITY_LOW; hdma1_stream4.Init.FIFOMode = DMA_FIFOMODE_DISABLE; if (HAL_DMA_Init(&hdma1_stream4) != HAL_OK) { Error_Handler(); } __HAL_LINKDMA(&huart4, hdmatx, hdma1_stream4);
}
void DBUG_USART1_UART_Init(int32_t baudrate) {
/* USER CODE BEGIN USART1_Init 0 */
/* USER CODE END USART1_Init 0 */
/* USER CODE BEGIN USART1_Init 1 */
/* USER CODE END USART1_Init 1 */ huart1.Instance = USART1; huart1.Init.BaudRate = baudrate; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.Parity = UART_PARITY_NONE; huart1.Init.Mode = UART_MODE_TX_RX; huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart1.Init.OverSampling = UART_OVERSAMPLING_16; if (HAL_UART_Init(&huart1) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN USART1_Init 2 */
/* USER CODE END USART1_Init 2 */
}
/**
* @brief USART1 Initialization Function * @param None * @retval None */ //static void USART1_UART_Init(void)
//{
//
// /* USER CODE BEGIN USART1_Init 0 */
//
// /* USER CODE END USART1_Init 0 */
//
// /* USER CODE BEGIN USART1_Init 1 */
//
// /* USER CODE END USART1_Init 1 */
// huart1.Instance = USART1;
// huart1.Init.BaudRate = 115200;
// huart1.Init.WordLength = UART_WORDLENGTH_8B;
// huart1.Init.StopBits = UART_STOPBITS_1;
// huart1.Init.Parity = UART_PARITY_NONE;
// huart1.Init.Mode = UART_MODE_TX_RX;
// huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
// huart1.Init.OverSampling = UART_OVERSAMPLING_16;
// if (HAL_UART_Init(&huart1) != HAL_OK)
// {
// Error_Handler();
// }
// /* USER CODE BEGIN USART1_Init 2 */
//
// /* USER CODE END USART1_Init 2 */
//
//}
|