【stm32f103】DMA应用memory to memory(寄存器版)

发布者:钱老李最新更新时间:2019-01-31 来源: eefocus关键字:stm32f103  DMA应用  memory 手机看文章 扫描二维码
随时随地手机看文章

注释:此文档是利用DMA实现memory to memory的搬运

可能有的人会说直接用memcpy会更方便,确实是这样,但是此文章仅仅是DMA应用的例子,所以不采用memcpy的方法,并且此历程中不配置DMA中断

后续在系统讲解USART章节中再讲解DMA中断

一.DMA1所在总线


所以要先ENABLE DMA所在总线时钟

RCC->AHBENR = RCC_AHBENR_DMA2EN;

二.DMA寄存器


寄存器可以参考 参考手册,在这里不做详细讨论

三.编程步骤:

1.使能DMA时钟‘

2.配置DMA外设地址(如果是memroy to meory也需要把memory的地址设置成外设地址,但是需要额外配置DMA CCR寄存器的bit14 MEM2MEM 标志)

3.配置DMA内存地址

4.配置传输方向,配置内存地址是否增加,配置外设地址是否增加,配置优先级等等

5.配置传输的数量

6.使能DMA

7.等待传输完成,清楚完成标志位

四.程序讲解源代码

#include

 

uint8_t source_buffer[20] = "I am source";

uint8_t dest_buffer[20];

 

int main()

{

RCC->AHBENR = RCC_AHBENR_DMA2EN;

/* 存储器地址 */

DMA2_Channel4->CMAR = (uint32_t)source_buffer;

/* 外设地址 */

DMA2_Channel4->CPAR = (uint32_t)dest_buffer;

/* 配置优先级 传输方向 内存2内存 外设地址增加 内存地址增加 */

DMA2_Channel4->CCR = DMA_CCR4_PL | DMA_CCR4_DIR | DMA_CCR4_MEM2MEM | DMA_CCR4_PINC | DMA_CCR4_MINC;

/* 传输的数据量 */

DMA2_Channel4->CNDTR = sizeof(source_buffer);

/* 使能DMA */

DMA2_Channel4->CCR |= DMA_CCR2_EN;

while ((DMA2->ISR & DMA_ISR_TCIF4) == 0);

DMA2->IFCR = DMA_IFCR_CTCIF4;

DMA2_Channel4->CCR &= ~DMA_CCR4_EN;

}

程序运行效果

关键字:stm32f103  DMA应用  memory 引用地址:【stm32f103】DMA应用memory to memory(寄存器版)

上一篇:【stm32f103】TIMER基本定时功能的使用(寄存器版)
下一篇:【stm32f103】GPIO原理以及LED的应用(寄存器版)

推荐阅读最新更新时间:2024-03-16 16:23

美光第二代HBM3内存实现带宽、效率与速度的同时提升
美光旨在通过其最新一代高带宽内存 (HBM3) 技术实现高带宽、效率和速度之间的平衡。 美光科技最近宣布“业界首款”HBM3 Gen2内存芯片已进入样品阶段。随着生成式人工智能模型变得越来越普遍,设计人员必须克服人工智能内存在效率、成本和性能瓶颈。与传统内存解决方案相比,第二代 HBM3 具有独特的优势,因此可以解决其中一些痛点。 美光的 HBM3 Gen2 内存芯片可以提高密度和带宽,同时降低功耗并提高计算模块的效率。 图片由美光科技提供 最新的 HBM3 内存基于美光的 1β(1-beta)DRAM 工艺节点构建,最多允许 24 Gb 内存芯片堆叠成 8 或 12层3D 堆栈。 不仅提高了纯存储密度,还提高了带宽和
[嵌入式]
美光第二代HBM3<font color='red'>内存</font>实现带宽、效率与速度的同时提升
利用SPD实现嵌入式系统中内存的自动识别和配置
摘要:介绍了内存的SPD规范及其硬件接口类型和数据组织结构,实现了在嵌入式系统中对不同内存的识别与配置,提高了系统的稳定性,方便更换和检测。具体实例详细描述了嵌入式系统中内存的自动配置过程。 关键词:SPD I2C 嵌入式系统 MPC824X 在嵌入式系统设计中经常用大容量的SDRAM,存放RTOS和数据。这时用户可以有两种选择:一种是选用合适的内存芯片自己布线,把整个SDRAM做到嵌入式系统的PCB板上,这种方法在小系统中经常采用;另一种就是选用现成的内存条(如笔记本电脑上常用的DIMM内存),现成的内存条不仅容量大,而且由于用量大,价格也相对便宜。另外现成的内存条还节省了PCB布线空间,缩小嵌入式系统的内存体积,提高系统的
[嵌入式]
【s3c2440】第三课:代码重定位
什么是重定位 简单来说就是把程序从内存的一个位置复制到另一个位置。 重定位的重要性 若s3c2440使用Nand Flash启动,则CPU会将Nand Flash的前4k拷贝到s3c2440 soc内部的SRAM。如果程序没有重定位代码,则只能运行Nand flash前4k的程序。 若s3c2440使用Nor Flash启动,则CPU无法修改Nor Flash内存中的数据。如果程序没有重定位代码,则会因为无法修改全局变量、静态变量的值导致程序运行出错。 链接脚本 链接脚本的格式如下: SECTIONS { sectname start BLICK(align) (NOLOAD) : AT( ldadr ) {
[单片机]
【s3c2440】第三课:代码重定位
内存价格大涨 苹果十年版手机取消扩容继续配置3GB
苹果秋季将推出十年版手机,升级内容比较多,其中内存据传可能达到4GB或是更高,创下苹果手机历史最高。不过据外媒最新消息,市场机构预测,随着内存和闪存芯片市场价格暴涨,苹果极有可能取消扩大内存的计划。下面就随嵌入式小编一起来了解一下相关内容吧。 据美国科技新闻网站PCWorld报道,长期跟踪存储芯片市场的研究公司Trendforce日前表示,内存市场的价格变动,将会影响到苹果的十年版手机,该手机将不会扩大内存,继续使用3GB内存。 内存价格大涨 苹果十年版手机取消扩容继续配置3GB 该机构表示,如果消费者希望获得4GB的内存,可能要等待明年的苹果新机。 和许多机构一样,这家公司预测苹果今年秋季将会发布三款手机,两款是去年手机
[嵌入式]
s3c2440裸机-内存控制器(三-4、norflash编程之实现)
1.识别norflash 我们知道要识别norflash属性,要让norflash进入cfi模式,然后按照手册上的表格发送一系列的命令就能获取norflash属性。 1)发送命令 那么我们需要实现一个cpu向nor发命令的一个函数nor_cmd()。我们的norflash是16bit位宽的,所以访问nor是以16位为单位访问的。 #define NOR_FLASH_BASE 0 /* jz2440, nor-- cs0, base addr = 0 */ /* 比如: 55H 98 ** 本意是: 往(0 + (0x55) 1)写入0x98 */ void nor_write_word(unsigned int b
[单片机]
s3c2440裸机-<font color='red'>内存</font>控制器(三-4、norflash编程之实现)
基于蓝牙(Bluetootlh)无线接入技术,智能机器人设计
1 引言 数字化家庭是未来智能小区系统的基本单元。所谓“数字化家庭”就是基于家庭内部网络提供覆盖整个家庭的智能化服务,包括、家庭娱乐和信息家电控制功能。 数字化家庭设计的一项主要内容是通信功能的实现,包括家庭与外界的通信及家庭内部相关设施之间的通信。从现在的发展来看,外部的通信主要通过宽带接入。Intenet,而家庭内部的通信,笔者采用目前比较具有竞争力的(Bluetootlh)无线接入技术。 传统的数字化家庭采用PC进行总体控制,缺乏人性化。笔者根据人工情感的思想设计一种配备多种外部的智能机器人,将此智能机器人视作家庭成员,通过它实现对数字化家庭的控制。 本文主要就智能机器人在数字化家庭医疗保健方面的应用进行
[机器人]
赛普拉斯为其领先业界F-RAM和nvSRAM产品组合提供晶圆销售支持
加利福尼亚州圣何塞市,2016年1月21日-赛普拉斯半导体公司(纳斯达克股票交易代码:CY)宣布其领先业界的非易失性随机存取存储器((NVRAM)产品组合新增晶圆产品。赛普拉斯的NVRAM产品组合包括铁电RAM(F-RAM )和非易失性静态RAM(nvSRAM),可在断电时为重要数据提供可靠保护。很多关键任务应用除了需要F-RAM和nvSRAM的独特优势之外,还需要能够实现小巧、独特封装选项的裸片。 赛普拉斯的F-RAM是业内能效最高的NVRAM技术,具有近乎无限的100万亿次读写耐久性。F-RAM 存储单元中的铁电材料可抵御由辐射或磁场导致的数据损坏,因此可为医疗、航天和国防应用提供软错误免疫能力。赛普拉斯的nvSRAM
[嵌入式]
s3c2440裸机-内存控制器(四、SDRAM原理-cpu是如何访问sdram的)
1.SDRAM原理 black (1)SDRAM内部存储结构: (2)再看看与2440连接的SDRAM原理图: sdram引脚说明: A0-A12:地址总线 D0-D15:数据总线(位宽16,2片级联成位宽32) BA0-BA1:bank选择 nSCS:片选 nSRAS:行地址选择 nSCAS:列地址选择 nWE:写使能 SCLK:时钟 SCKE:时钟使能 (3)SDRAM的地址范围: 之前我们讲“二、不同位宽外设与CPU地址总线的连接”这一节的时候,我们留下了一个问题,SDRAM的地址范围是多少? 我们知道地址范围肯定是base_addr + size。我们根据片选接了nGCS6,base_addr=0x3000,0
[单片机]
s3c2440裸机-<font color='red'>内存</font>控制器(四、SDRAM原理-cpu是如何访问sdram的)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved