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.
 
 
 

145 lines
4.1 KiB

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