网站大量收购独家精品文档,联系QQ:2885784924

STM32微控制器原理及应用 课件 第8章 DMA控制器.ppt

STM32微控制器原理及应用 课件 第8章 DMA控制器.ppt

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第8章DMA控制器STM32微控制器原理及应用本章教学目标DMA的概念与作用DMA的工作原理STM32的DMA结构与工作特点DMA寄存器的作用DMA的工作方式配置以及库函数功能DMA应用程序设计方法主要内容8.1概述8.2STM32的DMA简介8.3DMA寄存器8.4DMA库函数8.5DMA应用举例8.1概述由于外围设备速度较慢,CPU不能像读写存储器那样直接读写外设,为了解决速度不匹配的问题,CPU与外设之间传输数据要采取多种方式,主要有延时方式、查询方式、中断方式,以及DMA方式,前三种方式都是软件控制完成数据传送,而DMA方式是由DMA控制器来控制数据的传输过程。DMA控制数据传送的操作顺序说明如下:①I/O设备准备好后,向DMA控制器(DMAController,DMAC)发出DMA请求信号。②DMAC向CPU发出占用总线请求信号。③按照预定的DMAC占用总线方式,CPU响应总线请求,向DMAC发出总线响应信号,让出总线控制权,总线控制权交由DMAC接管。④DMAC接管总线后,先向I/O接口发出DMA响应信号,表示允许外设进行DMA传送。然后按事先设置的初始地址和需传送的字节数,依次发送地址和读写命令,使内存和I/O接口直接交换数据,直至全部数据交换完毕。⑤DMA传送结束后,自动撤消向CPU的总线请求信号,从而使总线响应和DMA响应信号相继变为无效,CPU又重新控制总线,恢复正常工作。DMA控制原理图8.2STM32的DMA简介12个独立的可配置的通道(请求):DMA1有7个通道,DMA2有5个通道每个通道都直接连接专用的硬件DMA请求,每个通道都同样支持软件触发。在同一个DMA模块上,多个请求间的优先权可以通过软件编程设置,优先权共有四级:很高、高、中等和低,优先权设置相等时由硬件决定。独立数据源和目标数据区的传输宽度(字节、半字、全字),模拟打包和拆包的过程。源和目标地址必须按数据传输宽度对齐。支持循环的缓冲器管理。每个通道都有3个事件标志(DMA半传输、DMA传输完成和DMA传输出错),这3个事件标志逻辑或成为一个单独的中断请求。存储器和存储器间的传输。存储器和外设之间的传输。闪存、SRAM、外设的SRAM、APB1、APB2和AHB外设均可作为访问的源和目标。可编程的数据传输数目最大为65535。8.3DMA寄存器DMA寄存器包括:DMA中断状态寄存器(DMA_ISR)DMA中断标志清除寄存器(DMA_IFCR)各个通道独立的配置寄存器(DMA_CCRx)传输数量寄存器(DMA_CNDTRx)外设地址寄存器(DMA_CPARx)存储器地址寄存器(DMA_CMARx)8.4DMA库函数函数DMA_Init函数原形:voidDMA_Init(DMA_Channel_TypeDef*DMA_Channelx,DMA_InitTypeDef*DMA_InitStruct)功能描述:根据DMA_InitStruct中指定的参数初始化DMA的通道x寄存器输入参数DMA_Channelx选择DMA通道x(x=1~7)。输入参数DMA_InitStruct为指向结构DMA_InitTypeDef的指针,包含了DMA通道x的配置信息。例如,下面的程序段完成根据DMA_InitStructure的成员值对DMA通道1初始化。DMA_InitTypeDefDMA_InitStructure;DMA_InitStructure.DMA_PeripheralBaseAddr=0DMA_InitStructure.DMA_MemoryBaseAddr=0DMA_InitStructure.DMA_DIR=DMA_DIR_PeripheralSRC;DMA_InitStructure.DMA_BufferSize=256;DMA_InitStructure.DMA_PeripheralInc=DMA_PeripheralInc_Disable;DMA_InitStructure.DMA_MemoryInc=DMA_MemoryInc_Enable;DMA_InitStructure.DMA_PeripheralDataSize=DMA_PeripheralDataSize_HalfWord;DMA_InitStructure.DMA_MemoryDataSize=DMA_MemoryDataSize_HalfWord;DMA_InitStructure.DMA_Mod

您可能关注的文档

文档评论(0)

balala11 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档