你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F4 FMC DMA显示问题

[复制链接]
zhangxu56726 提问时间:2016-9-13 17:54 /
求助: 我这边使用STM32F446E-EVAL的开发板,SDRAM做保存要显示的图片,同时屏也是FMC驱动,显示使用DMA将SDAM中的图片发送到屏,但是DMA进了中断,但是屏没有显示,不知道是什么问题,但是将片内lash中的数据用DMA搬移到内部sram是OK的,这样用对DMA有没有特殊要设置的,请高手协助下。
用MCU将SDAM中的数据发送到屏已经OK,下面是DMA初始化代码:
DMA_InitTypeDef DMA_InitStructure;
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE);

        DMA_ClearFlag(SDRAM_DMA_STREAM, SDRAM_DMA_FLAG_FEIF | SDRAM_DMA_FLAG_DMEIF | SDRAM_DMA_FLAG_TEIF | SDRAM_DMA_FLAG_HTIF | SDRAM_DMA_FLAG_TCIF);

        /* DMA2 Stream0  or Stream7 disable */
        DMA_Cmd(SDRAM_DMA_STREAM, DISABLE);

        /* DMA2 Stream0  or Stream7 Config */
        DMA_DeInit(SDRAM_DMA_STREAM);

        DMA_InitStructure.DMA_Channel = SDRAM_DMA_CHANNEL;
        DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)(SDRAM_BANK_ADDR);
        DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)(&(FMC_BANK1->RAM));//(FMC_BANK1_RAM);
        DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToMemory;
        DMA_InitStructure.DMA_BufferSize = (uint32_t)38400;
        DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Enable;
        DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable;
        DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
        DMA_InitStructure.DMA_MemoryDataSize = DMA_PeripheralDataSize_HalfWord;
        DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
        DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh;
        DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable;
        DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full;
        DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single;
        DMA_InitStructure.DMA_PeripheralBurst = DMA_MemoryBurst_Single;
        DMA_Init(SDRAM_DMA_STREAM, &DMA_InitStructure);
          DMA_ITConfig(SDRAM_DMA_STREAM, DMA_IT_TC, ENABLE);

收藏 1 评论7 发布时间:2016-9-13 17:54

举报

7个回答
zhangxu56726 回答时间:2016-9-13 19:39:34
难道没有人这么用?
无薪税绵 回答时间:2016-9-15 10:12:04
这个不懂,只能帮楼主加人气了。
wenyangzeng 回答时间:2016-9-15 12:55:21
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable;
这是在原地踏步吧?

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

高二毛 回答时间:2016-9-17 20:44:25
wenyangzeng 发表于 2016-9-15 12:55
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable;
这是在原地踏步吧?

楼上说的有道理,楼主可以参考一下。
zhangxu56726 回答时间:2016-9-18 12:15:20
屏里写数据,就是往一个地址里GRAM里写。不用变,我用程序版数据已经调试OK,这个不用质疑
xiaomucike 回答时间:2016-9-20 09:13:38
好吧,新手没看懂
assssdz 回答时间:2016-9-23 21:06:09
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版