完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
DMA(直接存储器访问),提供外设与存储器、存储器与存储器之间的告诉数据传输,不需要CPU的参与,共有七个通道。
一、DMA传输有三个操作完成 ● 从外设数据寄存器或者从DMA_CMARx 寄存器指定地址的存储器单元执行加载操作。 ● 存数据到外设数据寄存器或者存数据到DMA_CMARx 寄存器指定地址的存储器单元。 ● 执行一次DMA_CNDTRx 寄存器的递减操作。该寄存器包含未完成的操作数目。 二、仲裁器(优先级) 1. 软件:优先级由DMA_CCRX配置,4个优先级别:最高、高、中等、低。 2. 之间:若软件优先级相同,则通道号小的优先级更高。 三、属性 1. 可编程的数据大小 2. 指针增量:传输地址加1,2或者4。 3. 通道配置过程:DMA_CPARX设置外设地址——DMA_CMARX设置数据存储地址——设置数据量——设置优先级别——设置传输防线、循环模式等——启动 四、循环模式 可以处理循环缓存和连续数据流,当床书数目变为0是,将会自动的被恢复成配置通道是设置的初值,DMA操作将会继续进行。 五、 1. 错误管理 2. 中断:每个通道传输一半、完成或错误时,可以使用单独的中断使能信号产生中断。 3. DMA请求映射 外设请求:ADC/tiMX/SPIX/I2C/USARTX 一次仅能使能一个请求。 六、程序分析 DMA_DeInit(DMA1_Channel1); //将DMA通道1所有寄存器重设为缺省值 DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address; //DMA外设基地址(外设存储器映像值+地址偏移) DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&ADCConvertedValue; // 该参数用以定义DMA内存基地址 DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; //外设作为数据传输的来源 DMA_InitStructure.DMA_BufferSize = 1;//指定DMA通道的DMA缓存的大小,也是就传几个数据 DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//外设地址寄存器不变 DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable;//内存地址寄存器不变 DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;//外设数据宽度为16位 DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;//存储器的数据宽度为 DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;//工作在循环缓存模式 DMA_InitStructure.DMA_Priority = DMA_Priority_High;//DMA通道1拥有高优先级 DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;//没有设置成内存到内存 DMA_Init(DMA1_Channel1, &DMA_InitStructure);//根据DMA_InitStruct中指定的参数初始化DMA通道1寄存器 /* Enable DMA1 channel1 */ DMA_Cmd(DMA1_Channel1, ENABLE); |
|
相关推荐
|
|
感觉没什么意义……
|
|
|
|
|
|
2201 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2027 浏览 3 评论
4633 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2171 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2705 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 18:21 , Processed in 0.580146 second(s), Total 72, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号