#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 */ // //}