嵌入式微控制器原理及设计 (第2版)课件 第10章 DMA_第1页
嵌入式微控制器原理及设计 (第2版)课件 第10章 DMA_第2页
嵌入式微控制器原理及设计 (第2版)课件 第10章 DMA_第3页
嵌入式微控制器原理及设计 (第2版)课件 第10章 DMA_第4页
嵌入式微控制器原理及设计 (第2版)课件 第10章 DMA_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第10章DMA直接存储器存取原理与应用嵌入式系统开发课程目录10.1DMA概述10.2DMA应用实例10.1DMA概述DMA基础概念、特性与寄存器DMA基础概念什么是DMADMA(DirectMemoryAccess,直接存储器存取)是一种大大减轻CPU工作量的数据存取方式。传统数据传输需要CPU参与,而DMA去掉CPU参与环节,实现数据的直接传输。设置源地址、目标地址、传输数据量三个参数后,DMA自动启动传输,直到剩余数据量为0。4种数据传输方式本质上都是从内存某一区域传输到另一区域(外设数据寄存器本质上是内存的一个存储单元)。①外设→内存②内存→外设③内存→内存④外设→外设STM32DMA架构优势STM32采用Cortex-M3内核架构,DMA占用另外的总线,不会与CPU的系统总线发生冲突。也就是说,DMA的使用不会影响CPU的运行速度。有了DMA,CPU更专注于计算、控制等更加实用的操作,大幅提升系统效率。04STM32的DMA特性①

12个独立可配置通道(请求),DMA1有7个通道,DMA2有5个通道②每个通道直接连接专用硬件DMA请求,同时支持软件触发③优先级可通过软件编程设置(4级:很高、高、中等、低),相等优先级由硬件决定④独立的源和目标数据区传输宽度(字节、半字、全字),源和目标地址必须按数据传输宽度对齐⑤支持循环缓冲器管理⑥每个通道有3个事件标志(半传输、传输完成、出错),逻辑或成为一个单独的中断请求⑦支持内存和内存、外设和内存、内存和外设的传输⑧Flash、SRAM、APB1/APB2/AHB外设均可作为访问的源和目标⑨可编程的数据传输数量最大为65536DMA1与DMA2通道DMA1:7个通道(Channel1~7),连接ADC、TIM、USART、SPI、I2C等外设DMA2:5个通道(Channel1~5),连接TIM、ADC3、UART、SPI等外设(仅存在于大容量和互联型产品)05DMA主要寄存器寄存器名称功能DMA_ISR(中断状态寄存器)保存DMA中断状态DMA_IFCR(中断标志清除寄存器)清除DMA中断标志DMA_CCRx(通道x配置寄存器)设置DMA通道x的工作模式(x=1~7)DMA_CNDTRx(通道x传输数量寄存器)数据传输数量,范围为0~65535DMA_CPARx(通道x外设地址寄存器)外设数据寄存器的基地址,作为数据传输的源或目标DMA_CMAx(通道x存储器地址寄存器)存储器地址,开启通道时不能写该寄存器注:每个DMA通道都有一套独立的配置寄存器(CCRx、CNDTRx、CPARx、CMARx),通过通道编号x区分。DMA_ISR和DMA_IFCR为全局寄存器,管理所有通道的中断状态。0610.2DMA应用实例ADC数据采集与串口发送的DMA方式ADC数据采集DMA方式例10.1配置参数DMA通道:ADC→DMA1Channel1传输方向:外设→内存优先级:高DMA模式:Circular(循环模式)数据宽度:半字(HalfWord)特点:Circular模式循环进入中断关键代码//DMA初始化MX_DMA_Init();//ADC初始化+校准MX_ADC1_Init();HAL_ADCEx_Calibration_Start(&hadc1);//开启DMA传输HAL_ADC_Start_DMA(&hadc1,(uint32_t*)&ADC_Value,1);主程序while(1){HAL_Delay(12);Value=(float)ADC_Value*3.3/4096;//转换为电压值}HAL_ADC_Start_DMA()传送一个字的数据到ADC_Value变量,DMA自动完成外设到内存的数据传输,无需CPU干预。08串口发送DMA方式例10.2配置参数DMA通道:USART1_TX→DMA1Ch4传输方向:内存→外设优先级:低DMA模式:Normal(标准模式)数据宽度:1字节特点:Normal模式只进入一次中断关键代码uint8_tSenbuff[]="UARTDMATest\r\n";MX_DMA_Init();MX_USART1_UART_Init();while(1){HAL_UART_Transmit_DMA(&huart1,Senbuff,sizeof(Senbuff));HAL_Delay(1000);}Circular模式vsNormal模式Circular(循环模式):传输完成后自动重新开始,循环进入中断。适用于需要持续采集的数据流场景(如ADC连续采样)。Normal(标准模式):传输完成后停止,只进入一次中断。适用于单次数据传输场景(如串口发送一条消息)。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论