49 lines
1.1 KiB
C
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);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|