zoukankan      html  css  js  c++  java
  • 【GMT43智能液晶模块】例程十:DMA实验——存储器到存储器的传输

    实验原理:

      DMA(直接存储器访问)传输不需要占用CPU,可以在存储器至存储器实现高速的数据

    传输。本实验采用DMA2控制器的数据流0,选用通道0进行数据传输。通过液晶控制传输

    和结果显示。

    示例截图:

    源代码下载链接:

    链接:https://pan.baidu.com/s/1miXeWVe 密码:tmrq

    GMT43购买链接:

    核心代码:

    static void frame_process(void)
    {
    	DMA_InitTypeDef  DMA_InitStructure;
    	GUI_CURSOR_Show();
    	WM_SetCreateFlags(WM_CF_MEMDEV);
          GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);
    	
    	DMA_InitStructure.DMA_Channel = DMA_Channel_0;                                   
    	DMA_InitStructure.DMA_PeripheralBaseAddr = (unsigned long int)src_buffer;        
    	DMA_InitStructure.DMA_Memory0BaseAddr = (unsigned long int)dst_buffer;         
    	DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToMemory;                             
    	DMA_InitStructure.DMA_BufferSize = (unsigned long int)BUFFER_SIZE;              
    	DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Enable;                  
    	DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;                          
    	DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word;          
    	DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word;                  
    	DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;                                   
    	DMA_InitStructure.DMA_Priority = DMA_Priority_High;                             
    	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_PeripheralBurst_Single;              
    	DMA_Init(DMA2_Stream0, &DMA_InitStructure);
    	
    	while(1){
    		
    		GUI_Exec();
    	}
    }
    

      

  • 相关阅读:
    应急响应之如何发现隐藏的Webshell后门
    从失败终止到崩溃
    DumpConfigurator Utility工具
    使例外成为例外(而不是异常)
    用于可视化虚拟内存使用情况和GC堆使用情况的工具。
    关于EEMessageException异常
    c#/C++混合编程的一个问题
    关于std::__non_rtti_object异常
    仅通过转储来排除内存泄漏
    调试器不应该改变行为
  • 原文地址:https://www.cnblogs.com/xiaomagee/p/8300917.html
Copyright © 2011-2022 走看看