к1986ве92fi_DMA_init

12+
12+

1 просмотр

9 дней назад

ПожаловатьсяНарушение авторских прав

к1986ве92fi_DMA_init

12+
12+

1 просмотр

9 дней назад

ПожаловатьсяНарушение авторских прав
12+
12+

1 просмотр

9 дней назад

#include "DMA_init.h" // Используем таблицу из библиотеки extern DMA_CtrlDataTypeDef DMA_ControlTable[]; void DMA1_Init(void) { RST_CLK_PCLKcmd(RST_CLK_PCLK_DMA, ENABLE); MDR_DMA-﹥CTRL_BASE_PTR = (uint32_t)DMA_ControlTable; MDR_DMA-﹥CFG = DMA_CFG_MASTER_ENABLE; MDR_DMA-﹥ERR_CLR = 0x01; } void DMA_StartTransfer(uint8_t channel, uint32_t src, uint32_t dst, uint32_t size) { DMA_CtrlDataInitTypeDef dma_ctrl; dma_ctrl.DMA_SourceBaseAddr = src; dma_ctrl.DMA_DestBaseAddr = dst; dma_ctrl.DMA_SourceIncSize = DMA_SourceIncWord; dma_ctrl.DMA_DestIncSize = DMA_DestIncWord; dma_ctrl.DMA_MemoryDataSize = DMA_MemoryDataSize_Word; dma_ctrl.DMA_Mode = DMA_Mode_Basic; dma_ctrl.DMA_CycleSize = size; dma_ctrl.DMA_NumContinuous = DMA_Transfers_1; dma_ctrl.DMA_SourceProtCtrl = DMA_SourcePrivileged; dma_ctrl.DMA_DestProtCtrl = DMA_DestPrivileged; DMA_CtrlDataInit(&dma_ctrl, &DMA_ControlTable[channel]); MDR_DMA-﹥CHNL_REQ_MASK_CLR = (1 ﹤﹤ channel); MDR_DMA-﹥CHNL_ENABLE_SET = (1 ﹤﹤ channel); } void DMA_StopTransfer(uint8_t channel) { MDR_DMA-﹥CHNL_ENABLE_CLR = (1 ﹤﹤ channel); MDR_DMA-﹥CHNL_REQ_MASK_SET = (1 ﹤﹤ channel); }

, чтобы оставлять комментарии