战舰v3视频盘盘第50讲dma基本原理_第1页
战舰v3视频盘盘第50讲dma基本原理_第2页
战舰v3视频盘盘第50讲dma基本原理_第3页
战舰v3视频盘盘第50讲dma基本原理_第4页
战舰v3视频盘盘第50讲dma基本原理_第5页
已阅读5页,还剩21页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、手把手教你学STM32ALIENTEK淘宝店铺: 技术论坛 主讲人 :正点原子团队硬件平台:正点原子STM32开发板 :广州市星翼电子科技有限公司淘宝店铺: 技术论坛: 开源电子网公众平台:“正点原子”官方网站: 联系电话: 手把手教你学STM32 DMA 原理与配置STM32F1xx开发板(正点原子)STM32F4xx开发板(正点原子)适用平台淘宝店铺: 技术论坛 目录 DMA原理1 寄存器库函数配置2 实验程序讲解3淘宝店铺: 技术论坛 DMA淘宝店铺: 技术论坛 参考资料:战舰STM32F1开发板 STM32F1开发指南-库函数版本-第27章 DMA实验精英STM32F1开发板 STM3

2、2F1开发指南-库函数版本-第26章 DMA实验miniSTM32F1开发板 STM32不完全-库函数版本-第23章 DMA实验STM32F1xx官方资料:STM32中文参考手册V10-第10章 DMA控制器DMA原理淘宝店铺: 技术论坛 DMA简介DMA 全称Direct Memory Access,即直接存储器访问。DMA传输将数据从一个地址空间复制到另一个地址空间。当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实现和完成的。DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAM和IO设备开辟一条直接传输数据的通道,使得CPU的效率

3、大大提高。作用:为CPU减负。DMA原理淘宝店铺: 技术论坛 STM32最多有2个DMA控制器(DMA2仅存在大容量产品中),DMA1有7个通道。DMA2有5个通道。每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁起来协调各个DMA请求的优先权。DMA原理淘宝店铺: 技术论坛 DMA框图DMA原理淘宝店铺: 技术论坛 STM32的DMA有以下一些特性: 每个通道都直接连接专用的硬件DMA请求,都支持软件触发,这些通过软件来配置。在七个请求间的优先权可以通过软件编程设置(共有四级:很高、高、中等和低),假如在相等优先权时由硬件决定(请求0优先于请求1,依此类推) 。 独立

4、的源和目标数据区的传输宽度(字节、半字、全字),模拟打包和拆包的过程。源 和目标地址必须按数据传输宽度对齐。 支持循环的缓冲器管理 每个通道都有3个事件标志(DMA 半传输,DMA传输完成和DMA传输出错), 这3个事件标志逻辑或成为一个单独的中断请求。 外设和存储器,存储器和外设的传输 ,存储器和存储器间的传输 闪存、SRAM、外设的SRAM、APB1 APB2和AHB外设均可作为访问的源和目标。 可编程的数据传输数目:最大为65536DMA原理淘宝店铺: 技术论坛 DMA原理淘宝店铺: 技术论坛 DMA原理淘宝店铺: 技术论坛 数据传输方向:DMA_CCRx寄存器DMA原理淘宝店铺: 技术

5、论坛 DMA_CCRx寄存器DMA原理淘宝店铺: 技术论坛 DMA原理淘宝店铺: 技术论坛 DMA原理淘宝店铺: 技术论坛 DMA原理淘宝店铺: 技术论坛 通道传输数据量:DMA原理淘宝店铺: 技术论坛 DMA原理淘宝店铺: 技术论坛 DMA原理淘宝店铺: 技术论坛 DMA配置参数通道优先级数据传输方向存储器/外设 数据宽度存储器/外设 地址是否增量循环模式数据传输量DMA原理淘宝店铺: 技术论坛 DMA库函数:stm32f10 x_dma.c / stm32f10 x_dma.hDMA原理淘宝店铺: 技术论坛 常用的DMA库函数void DMA_Init(DMA_Channel_TypeDe

6、f* DMAy_Channelx, DMA_InitTypeDef* DMA_InitStruct);void DMA_Cmd(DMA_Channel_TypeDef* DMAy_Channelx, FunctionalState NewState);void DMA_ITConfig(DMA_Channel_TypeDef* DMAy_Channelx, uint32_t DMA_IT, FunctionalState NewState);void DMA_SetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx, uint16_t Data

7、Number); uint16_t DMA_GetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx);FlagStatus DMA_GetFlagStatus(uint32_t DMAy_FLAG);void DMA_ClearFlag(uint32_t DMAy_FLAG);ITStatus DMA_GetITStatus(uint32_t DMAy_IT);void DMA_ClearITPendingBit(uint32_t DMAy_IT);DMA原理淘宝店铺: 技术论坛 void USART_DMACmd(USART_TypeDef

8、* USARTx, uint16_t USART_DMAReq, FunctionalState NewState);void ADC_DMACmd(ADC_TypeDef* ADCx, FunctionalState NewState);void DAC_DMACmd(uint32_t DAC_Channel, FunctionalState NewState);void I2C_DMACmd(I2C_TypeDef* I2Cx, FunctionalState NewState);void SDIO_DMACmd(FunctionalState NewState);void SPI_I2S

9、_DMACmd(SPI_TypeDef* SPIx, uint16_t SPI_I2S_DMAReq, FunctionalState NewState);void TIM_DMAConfig(TIM_TypeDef* TIMx, uint16_t TIM_DMABase, uint16_t TIM_DMABurstLength)void TIM_DMACmd(TIM_TypeDef* TIMx, uint16_t TIM_DMASource, FunctionalState NewState);常用的外设DMA使能库函数DMA原理淘宝店铺: 技术论坛 void DMA_Init(DMA_Ch

10、annel_TypeDef* DMAy_Channelx, DMA_InitTypeDef* DMA_InitStruct)typedef struct uint32_t DMA_PeripheralBaseAddr; /外设基地址 uint32_t DMA_MemoryBaseAddr; /存储器基地址 uint32_t DMA_DIR; /数据传输方向 uint32_t DMA_BufferSize; /通道传输数据量 uint32_t DMA_PeripheralInc;/外设增量模式 uint32_t DMA_MemoryInc; /存储器增量模式 uint32_t DMA_Perip

11、heralDataSize; /外设数据宽度 uint32_t DMA_MemoryDataSize; /存储器数据宽度 uint32_t DMA_Mode; /模式:是否循环 uint32_t DMA_Priority; /优先级 uint32_t DMA_M2M; /是否存储器到存储器方式 DMA_InitTypeDef;DMA原理淘宝店铺: 技术论坛 DMA配置程序过程 使能DMA时钟 RCC_AHBPeriphClockCmd(); 初始化DMA通道参数 DMA_Init();使能串口DMA发送,串口DMA使能函数: USART_DMACmd();使能DMA1通道,启动传输。 DMA_Cmd();查询DMA传输状态 DMA_GetFl

温馨提示

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

评论

0/150

提交评论