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