第十七回dma的工作原理_第1页
第十七回dma的工作原理_第2页
第十七回dma的工作原理_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

配套开发 地址 +源程序:: : :第十七回DMA工作DMA的简STM32DMA,首先我们看一下什么是DMA,DMA就是直接器存取的英文缩写(DirectMemoryAccess,DMA)它是计算机科学中的一种内存技术。它允许电脑内部的硬件子系统(电脑外设可以独立的直接读写系统器,而不需要经过CPU。在相同的CPU负担下,DMA是一种快速的数据传送方式。DMA用来提供在外设和器之间或者器和器之间的高速数据传输。无须CPU的干预。通过DMA,数据可以在外设和器之间或者器和器之间快速地移动,这就节省了CPU宝贵的资源,在DMA进行数据传输的时候,不影响CPU一个MCU就好比是一个公司。是CPU,员工是外设,仓库是内存。从前仓库的东西都是老多的员工和后来想了一奇招雇了一个仓库保管员他叫DMA他专门负责入库和出库,只需要把出库和入库计划给过目,说OK,就不用管了。后面的入库和出库的过在看一下什么是STM32的DMA?根据ST公司提供的相关信息,DMA是STM32中一个独立与Cortex-M3内核的模块,有点类似与ADC、、TIMER等模块;主要功能是启到一个通信“桥梁”的内存或者内存与内存之间就可以直接通过DMA来传输不受CPU的。STM32有两个DMA控制器(高容量的)有12个通道(DMA1有7个通道,DMA2有5个通道),每DMA01,依此类推)。器和器间的传外设和器、器和外设之间的传闪存、SRAM、外设的SRAM、APB1、APB2和AHB外设均可作为的源和目标STM32DMA作分简单一点的说STM32单片机的DMA就像是工厂的搬运工,(相当于CPU)让搬运工把货物从DMADMA传输数目等等,看一下STM32单片机的手册是有那些寄存器来控制这些参数的。(DMA_CPARx Adc_NumericalDMA(DTRxDMADMA(DMA_CCRx,友可以看一下《STM3215010.4.3DMA息的,你比如传输数据宽度、外设及器的宽度、通道优先级、增量模式、传输方向、中断允许、DMADMA里就不一一给大家介绍了,有的朋友可以看以一下《STM32参考手册。在我们使用DMA的通道DMAADC1DMA11DMA1实验的目电阻的值来改变PA1引脚上的电压,通过STM32单片机的内部的ADC1转换器的通道1来这个电压,将模拟量的值转换为数字量,转换完成以后触发DMA请求,然后通过DMA1的通道1把数据转移LCD_ShowBigNum4(:: : :14行“externvolatileu16Adc_NumericalAdc_Numerical这个变量是在“dma.c”这个文件中定义的,为了能在主函数中使用这个变量面加了一个关键字“extern”,大家可以看到这保证我们每次读到的“Adc_Numerical”这个变量的值都是ADC1转换得到的的值。18行调用“Dma_Configuration()”函数来配置DMAPA1IO08“ADC_InitTypeDef”结构体类型的变量“ADC_InitStructure”用它来配ADC1,配置初始化范例如图:DMA1寄存器址就是0X C,这个外设址是如果计算出来的那?就是ADC1外设址 )+规则数据寄存器(ADC_DR)偏移地址(0X4C)=DMA外设址。该参数用以定义DMA内存址。DMA_DIRTable108.给出了该参数DMA_BufferSize:: : :“DA_PripralIn_DiablDMA_MemoryIncTable110.给出了该参数的取值范围。在这节课的程序当中,我们只定义了一个“u16Adc_Numerical”变量,所有说内存的地址不需要递DMA_PeripheralDataSizeTable111.给出了该参数的取值范围。(8bits字传输(32bits16DMA_MemoryDataSizeTable112.DMA_Mode用来设置DMA模式是否循环,由于这节课的程序要不断的将到的ADC1的值通过DMA转移走,所以要把这个参数设置为了“DMA_Mode_Circular”循环传输。DMA_M2M“DMA_M2M_Disable11“RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_ADC1,ENABLEGPIOAADC113“RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLEDMA132“DMA_Cmd(DMA1_Channel1,ENABLEDMA11。43“ADC_DMACmd(ADC1,ENABLEADC1DMA。“LCD_ShowBigNum4(5:实验现块的数字不断的变化,R664095。由于作者学识有限,错漏和不当之处在所难免,敬请大家给予批评指正,作者邮箱: 1998200010各种电路板,使用AltiumDesigner软件来画PCBVB,VC,C#,LabVIEW和他的研发团队已经申请了几十个国家发明设计专利。外,注;2010年录制《手把你学51单片机与Proteus>>发布以后引起了社会很大反响,数十万学子通过该轻松跨入单片机开发的大门;该配套的学习板在淘宝上几度卖断货;该视频配套的学习板的型号是TX-1CHC,采用的主控是STC89C52,采用的是MCS-51的内核,MCS-51内核是有大名鼎鼎的In公司于1980年推出了8位单片机内核,现在市场90%的家用空调,开发一般的空调和简单的工业控制设备是没有问题的。(我们这套主要是介绍MCS-51内核编程2012年录制了《手把手学ARM-STM32初级》发布以后,一直占据,360等等相关搜索第为精华,该配套的实验板型号LX-1A,采用的主控是意法半导体的STM32F103VC,该的内核是大名鼎鼎的ARM公司推出的Cort

温馨提示

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

评论

0/150

提交评论