Yunhorn_OLD_R1_R2_R5/Src/dma.c

85 lines
2.6 KiB
C
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
******************************************************************************
* File Name : dma.c
* Description : This file provides code for the configuration
* of all the requested memory to memory DMA transfers.
******************************************************************************
* @attention
*
* <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
* All rights reserved.</center></h2>
*
* This software component is licensed by ST under BSD 3-Clause license,
* the "License"; You may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
* opensource.org/licenses/BSD-3-Clause
*
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include "dma.h"
/* USER CODE BEGIN 0 */
/* USER CODE END 0 */
/*----------------------------------------------------------------------------*/
/* Configure DMA */
/*----------------------------------------------------------------------------*/
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/**
* Enable DMA controller clock
*/
void MX_DMA_Init(void)
{
/* Init with LL driver */
/* DMA controller clock enable */
LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_DMA1);
/* DMA interrupt init */
/* DMA1_Channel4_5_6_7_IRQn interrupt configuration */
NVIC_SetPriority(DMA1_Channel4_5_6_7_IRQn, 0);
NVIC_EnableIRQ(DMA1_Channel4_5_6_7_IRQn);
}
/* USER CODE BEGIN 2 */
/************************************************
函数å<EFBFBD><EFBFBD>ç§° ï¼? Get_TOF_Distance
åŠ? èƒ? ï¼? 读å<C2BB>传感器数æ<C2B0>?
å<EFBFBD>? æ•? ï¼? DMA_TypeDef *DMAx DMA Instance
uint32_t Channel DMA Channel
USART_TypeDef *USARTx USART Instance
uint32_t MemoryAddress æ•°æ<C2B0>®å­˜å¨åœ°å<C2B0>
uint32_t NbData æ•°æ<C2B0>®é•¿åº¦
� � � � �
*************************************************/
void Usart_DMA_CONFIG(DMA_TypeDef *DMAx, uint32_t Channel, USART_TypeDef *USARTx, uint32_t MemoryAddress,uint32_t NbData)
{
LL_DMA_SetPeriphAddress(DMAx,Channel,(uint32_t)(&USARTx->RDR));
LL_USART_DMA_GetRegAddr(USARTx,LL_USART_DMA_REG_DATA_RECEIVE);
LL_DMA_SetMemoryAddress(DMAx,Channel,(uint32_t)MemoryAddress);
LL_DMA_SetDataLength(DMAx,Channel,NbData);
LL_DMA_EnableChannel(DMAx,Channel);
LL_USART_EnableDMAReq_RX(USARTx);
LL_USART_EnableIT_IDLE(USARTx);
}
/* USER CODE END 2 */
/**
* @}
*/
/**
* @}
*/
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/