硬汉嵌入式论坛

 找回密码
 立即注册
查看: 293|回复: 2
收起左侧

[有问必答] 关于stm32f407的DMA实现两个存储器数据传输

[复制链接]

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2023-7-5 16:52:04 | 显示全部楼层 |阅读模式
本帖最后由 旧诗行 于 2023-7-5 17:13 编辑

有无大佬帮我看看为啥没反应


void LDMA_Init(u32 A,u32 B)
{
            RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA1,ENABLE);
        
                        DMA_InitTypeDef DMA_InitStructure;
                        DMA_InitStructure.DMA_Memory0BaseAddr=A;
                        DMA_InitStructure.DMA_MemoryBurst=DMA_MemoryBurst_Single;
                  DMA_InitStructure.DMA_MemoryDataSize=DMA_MemoryDataSize_Byte;
                        DMA_InitStructure.DMA_PeripheralBaseAddr=B;
                        DMA_InitStructure.DMA_PeripheralBurst=DMA_PeripheralBurst_Single;
                        DMA_InitStructure.DMA_PeripheralDataSize=DMA_PeripheralDataSize_Byte;
                        DMA_InitStructure.DMA_PeripheralInc=DMA_PeripheralInc_Enable;
            
                        DMA_InitStructure.DMA_BufferSize=4;
                  DMA_InitStructure.DMA_Channel=DMA_Channel_0;
                        DMA_InitStructure.DMA_DIR=DMA_DIR_MemoryToMemory;
                        DMA_InitStructure.DMA_FIFOMode=DMA_FIFOMode_Disable;
                        DMA_InitStructure.DMA_FIFOThreshold=DMA_FIFOThreshold_Full;
                        DMA_InitStructure.DMA_MemoryInc=DMA_MemoryInc_Enable;
                        DMA_InitStructure.DMA_Mode=DMA_Mode_Normal;
                        DMA_InitStructure.DMA_Priority=DMA_Priority_Medium;
        
            DMA_Init(DMA1_Stream0,&DMA_InitStructure);
                        DMA_Cmd(DMA1_Stream0,ENABLE);
}




#include "stm32f4xx.h"
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "lcd.h"
#include "DMA.h"

void Delay(__IO uint32_t nCount);

void Delay(__IO uint32_t nCount)
{
  while(nCount--){}
}

int main(void)
{
  u8 data1[]={1,3,5,7};
        u8 data2[]={0,0,0,0};
        
        
        
        char lcd_id[12];                                //存放LCD ID字符串
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
        delay_init(168);      //初始化延时函数
        uart_init(115200);                //初始化串口波特率为115200
        
        
        

         LCD_Init();           //初始化LCD FSMC接口
        POINT_COLOR=RED;      //画笔颜色:红色
        LCD_Clear(BLACK);

        
        
          LCD_ShowxNum(30,190,(u32)data1[0],1,24,0);
                LCD_ShowxNum(60,190,(u32)data1[1],1,24,0);
                LCD_ShowxNum(90,190,(u32)data1[2],1,24,0);
                LCD_ShowxNum(120,190,(u32)data1[3],1,24,0);
                        
                LCD_ShowxNum(30,220,(u32)data2[0],1,24,0);
                LCD_ShowxNum(60,220,(u32)data2[1],1,24,0);
                LCD_ShowxNum(90,220,(u32)data2[2],1,24,0);
                LCD_ShowxNum(120,220,(u32)data2[3],1,24,0);
               
                LDMA_Init((u32)data1,(u32)data2);
                        
                LCD_ShowxNum(30,250,(u32)data1[0],1,24,0);
                LCD_ShowxNum(60,250,(u32)data1[1],1,24,0);
                LCD_ShowxNum(90,250,(u32)data1[2],1,24,0);
                LCD_ShowxNum(120,250,(u32)data1[3],1,24,0);
                        
                LCD_ShowxNum(30,280,(u32)data2[0],1,24,0);
                LCD_ShowxNum(60,280,(u32)data2[1],1,24,0);
                LCD_ShowxNum(90,280,(u32)data2[2],1,24,0);
                LCD_ShowxNum(120,280,(u32)data2[3],1,24,0);


}
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2023-7-5 16:52:57 | 显示全部楼层
有人帮忙看看嘛,太难了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106760
QQ
发表于 2023-7-6 09:29:54 | 显示全部楼层
使用存储器到存储器模式不支持循环传输模式,同时必须开启 FIFO,即不支持直接模式(关闭了 FIFO就是直接模式 Direct mode)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-5 04:15 , Processed in 0.232860 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表