第二十六章DMA实验战舰STM32开发板.pdfVIP

第二十六章DMA实验战舰STM32开发板.pdf

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二十六章DMA实验战舰STM32开发板

ALIENTEK 战舰STM32开发板 第二十六章 DMA 实验 本章我们将向大家介绍STM32 的DMA 。在本章中,我们将利用STM32 的DMA 来实 现串口数据传送,并在TFTLCD 模块上显示当前的传送进度。本章分为如下几个部分: 26.1 STM32 DMA 简介 26.2 硬件设计 26.3 软件设计 26.4 下载验证 345 ALIENTEK 战舰STM32开发板 26.1 STM32 DMA 简介 DMA ,全称为:Direct Memory Access,即直接存储器访问,DMA 传输将数据从一个 地址空间复制到另外一个地址空间。当 CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器 来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的 内存区。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工 作。DMA 传输对于高效能嵌入式系统算法和网络是很重要的。DMA 传输方式无需CPU 直接 控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM 与I/O 设备 开辟一条直接传送数据的通路,能使CPU 的效率大为提高。 STM32 最多有2 个DMA 控制器(DMA2 仅存在大容量产品中),DMA1 有7 个通道。DMA2 有5 个通道。每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁起 来协调各个DMA 请求的优先权。 STM32 的DMA 有以下一些特性: ●每个通道都直接连接专用的硬件 DMA 请求,每个通道都同样支持软件触发。这些功能 通过软件来配置。 ●在七个请求间的优先权可以通过软件编程设置(共有四级:很高、高、中等和低),假如 在相等优先权时由硬件决定(请求0 优先于请求1,依此类推) 。 ●独立的源和目标数据区的传输宽度(字节、半字、全字),模拟打包和拆包的过程。源和 目标地址必须按数据传输宽度对齐。 ●支持循环的缓冲器管理 ●每个通道都有3 个事件标志(DMA 半传输,DMA 传输完成和DMA 传输出错),这3 个 事件标志逻辑或成为一个单独的中断请求。 ●存储器和存储器间的传输 ●外设和存储器,存储器和外设的传输 ●闪存、SRAM、外设的SRAM、APB1 APB2 和AHB 外设均可作为访问的源和目标。 ●可编程的数据传输数目:最大为65536 STM32F103ZET6 有两个DMA 控制器,DMA1 和DMA2 ,本章,我们仅针对DMA1 进行 介绍。 从外设(TIMx、ADC 、SPIx、I2Cx 和USARTx )产生的DMA 请求,通过逻辑或输入到 DMA 控制器,这就意味着同时只能有一个请求有效。外设的DMA 请求,可以通过设置相应的 外设寄存器中的控制位,被独立地开启或关闭。 表26.1.1 是DMA1 各通道一览表: 346 ALIENTEK 战舰STM32开发板 表26.1.1 DMA1 个通道一览表 这里解释一下上面说的逻辑或,例如通道1 的几个DMA1 请求(ADC1、TIM2_CH3、TIM4_CH1), 这几个是通过逻辑或到通道1 的,这样我们在同一时间,就只能使用其中的一个。其他通道也 是类似的。 这里我们要使用的是串口1 的DMA 传送,也就是要用到通道4。接下来,我们介绍一下DMA 设置相关的几个寄存器。 第一个是DMA 中断状态寄存器(DMA_ISR)。该寄存器的各位描述如图26.1.1 所示: 图26.1.1 DMA_ISR 寄存器各位描述 我们如果开启了DMA_ISR 中这些中断,在达到条件后就会跳到中断服务函数里面去,即使 没开启,我们也可以通过查询这些位来获得当前DMA 传输的状态。这里我们常用的是TCIFx, 即通道DMA 传输完成与否的标志。注意此寄存器为只读寄存器,所以在这些位被置位之后,只 能通过其他的操作来清除。 第二个是DMA 中断标志清除寄存器(DMA_IFCR)。该寄存器的各位描述如图26.1.2 所示: 347 ALIENTEK 战舰ST

您可能关注的文档

文档评论(0)

woai118doc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档