Files
IS3/APP/usart1_tx_dma.c
2025-03-12 15:03:24 +08:00

49 lines
1.1 KiB
C

//
// Created by hu123456 on 2024/8/19.
//
#include "usart1_tx_dma.h"
DMA_HandleTypeDef g_dma_handle;
void dma_init(DMA_Stream_TypeDef *dma_stream_handle, uint32_t ch)
{
if ((uint32_t)dma_stream_handle > (uint32_t)DMA2)
{
__HAL_RCC_DMA2_CLK_ENABLE();
}
else
{
__HAL_RCC_DMA1_CLK_ENABLE();
}
__HAL_LINKDMA(&huart1,hdmatx, g_dma_handle);
g_dma_handle.Instance = dma_stream_handle;
g_dma_handle.Init.Request = ch;
g_dma_handle.Init.Direction = DMA_MEMORY_TO_PERIPH;
g_dma_handle.Init.PeriphInc = DMA_PINC_DISABLE;
g_dma_handle.Init.MemInc = DMA_MINC_ENABLE;
g_dma_handle.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
g_dma_handle.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
g_dma_handle.Init.Mode = DMA_NORMAL;
g_dma_handle.Init.Priority = DMA_PRIORITY_MEDIUM;
g_dma_handle.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
g_dma_handle.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_FULL;
g_dma_handle.Init.MemBurst = DMA_MBURST_SINGLE;
g_dma_handle.Init.PeriphBurst = DMA_PBURST_SINGLE;
HAL_DMA_DeInit(&g_dma_handle);
HAL_DMA_Init(&g_dma_handle);
}