收藏 分销(赏)

STM32F4xx系列DMA结构体初始化.docx

上传人:仙人****88 文档编号:12040732 上传时间:2025-09-01 格式:DOCX 页数:7 大小:1,014.13KB 下载积分:10 金币
下载 相关 举报
STM32F4xx系列DMA结构体初始化.docx_第1页
第1页 / 共7页
STM32F4xx系列DMA结构体初始化.docx_第2页
第2页 / 共7页


点击查看更多>>
资源描述
DMA_InitTypeDef DMA_InitStructure; DMA_InitStructure .DMA_Channel=DMA_Channel_0; DMA_InitStructure .DMA_PeripheralBaseAddr=aSRC_Const_Buffer; DMA_InitStructure .DMA_Memory0BaseAddr=aDST_Buffer; DMA_InitStructure .DMA_DIR=DMA_DIR_MemorytoMemory; DMA_InitStructure .DMA_BufferSize=32; DMA_InitStructure .DMA_PeripheralInc= DMA_PeripheralInc_Enable; DMA_InitStructure .DMA_MemoryInc= DMA_MemoryInc_Enable; DMA_InitStructure.DMA_PeripheralDataSize= DMA_PeripheralDataSize_Word; DMA_InitStructure.DMA_MemoryDataSize= DMA_MemoryDataSize_Word; DMA_InitStructure .DMA_Mode=DMA_Mode_Normal; DMA_InitStructure .DMA_Priority=DMA_Priority_High; DMA_InitStructure .DMA_FIFOMode= DMA_FIFOMode_Disable; DMA_InitStructure .DMA_FIFOThreshold=DMA_FIFOThreshold_Full; DMA_InitStructure .DMA_MemoryBurst=DMA_MemoryBurst_Single; DMA_InitStructure .DMA_PeripheralBurst=DMA_PeripheralBurst_Single; DMA_Init(DMA2_STREAM0,&DMA_InitStructure); DMA_ClearFlag(DMA_STREAM,DMA_FLAG_TCIF);//清除DMA数据流传输完成标志位 DMA_Cmd(DMA2_Stream0,ENABLE);//开始DMA数据传输 DMA外设请求通道的选择 DMA_InitStructure .DMA_Channel 参数选择 DMA_Channel_0 通道0 DMA_Channel_1 通道1 DMA_Channel_2 通道2 DMA_Channel_3 通道3 DMA_Channel_4 通道4 DMA_Channel_5 通道5 DMA_Channel_6 通道6 DMA_Channel_7 通道7 外设地址 DMA_InitStructure .DMA_PeripheralBaseAddr 参数自定义 1).一般设置为外设的数据寄存器地址 2).存储器到存储器模式,则设置其中一个存储区地址 存储区0地址 DMA_InitStructure .DMA_Memory0BaseAddr 参数自定义 一般设置为我们自定义存储区的首地址,也可以定义一个对应的数组存放数值,直接将数组名赋给DMA_Memory0BaseAddr即可 传输方向 DMA_InitStructure .DMA_DIR 参数选择 DMA_DIR_PeripheralToMemory 外设到存储器 DMA_DIR_MemoryToPeripheral 存储器到外设 DMA_DIR_MemoryToMemory 存储器到存储器 设定待传输数据数目 DMA_InitStructure .DMA_BufferSize 参数自定义 其设定的范围为0-65535,一般明确指定一个传输数量 控制外设地址自动递增功能 DMA_InitStructure .DMA_PeripheralInc 参数选择 DMA_PeripheralInc_Enable 使能外设地址自动递增功能 DMA_PeripheralInc_Disable 失能外设地址自动递增功能 其增加量由DMA_PeripheralDataSize决定; 控制存储器地址自动递增功能 DMA_InitStructure .DMA_MemoryInc 参数选择 DMA_MemoryInc_Enable 使能存储器地址自动递增功能 DMA_MemoryInc _Disable 失能存储器地址自动递增功能 其增加量由DMA_MemoryDataSize;决定; 外设数据宽度 DMA_InitStructure.DMA_PeripheralDataSize 参数选择 DMA_PeripheralDataSize_Byte 字节单位=8位 DMA_PeripheralDataSize_HalfWord 半字单位=16位 DMA_PeripheralDataSize_Word 字单位=32位 存储器数据宽度 DMA_InitStructure.DMA_MemoryDataSize 参数选择 DMA_MemoryDataSize_Byte 字节单位=8位 DMA_MemoryDataSize_HalfWord 半字单位=16位 DMA_MemoryDataSize_Word 字单位=32位 直接模式条件下外设和储存器数据宽度大小一样,DMA_PeripheralDataSize 和DMA_MemoryDataSize不被使用 DMA传送模式选择 DMA_InitStructure .DMA_Mode 参数选择 DMA_Mode_Normal 一次传输模式 DMA_Mode_Circular 循环传输模式 软件设置数据流的优先级 DMA_InitStructure .DMA_Priority 数据选择 DMA_Priority_Low 对应定义的数据流为低优先级 DMA_Priority_Medium 对应定义的数据流为中优先级 DMA_Priority_High 对应定义的数据流为高优先级 DMA_Priority_VeryHigh 对应定义的数据流为非常高优先级 FIFO模式 DMA_InitStructure .DMA_FIFOMode; 参数选择 DMA_FIFOMode_Disable FIFO模式使能 DMA_FIFOMode_Enable FIFO模式失能 1).FIFO使能 FIFO模式 源数据 à 目标地址,在FIFO临时存放数据 例如:源地址和目标地址数据宽度不同 源地址输出字节数据,目标地址输出字数据,实际传输把4个8位数据拼凑成一个32位字数据输出 2).FIFO失能 直接模式 默认情况下,DMA工作在直接模式 在每次外设请时都立刻启动对存储器传输的单次传输,要求源地址的数据宽度等于目标地址的数据宽度 3).双缓冲模式 DMA_SxCR的寄存器DBM位为1就可以启用双缓冲模式,并自动激活循环模式 两个存储器的地址指针都有效,DMA控制器会自动切换两个存储区的的数据储存 FIFO阈值选择 DMA_InitStructure .DMA_FIFOThreshold 参数选择 DMA_FIFOThreshold_1QuarterFull FIFO容量的1/4 DMA_FIFOThreshold_HalfFull FIFO容量的1/2 DMA_FIFOThreshold_3QuartersFull FIFO容量的3/4 DMA_FIFOThreshold_Full FIFO容量的满 存储器突发模式选择 DMA_InitStructure .DMA_MemoryBurst 参数选择 DMA_MemoryBurst_Single 单次模式 DMA_MemoryBurst_INC4 4节拍的增量突发模式 DMA_MemoryBurst_INC8 8节拍的增量突发模式 DMA_MemoryBurst_INC16 16节拍的增量突发模式 外设突发模式选择 DMA_InitStructure .DMA_PeripheralBurst 参数选择 DMA_PeripheralBurst_Single 单次模式 DMA_PeripheralBurst_INC4 4节拍的增量突发模式 DMA_PeripheralBurst_INC8 8节拍的增量突发模式 DMA_PeripheralBurst_INC16 16节拍的增量突发模式 1).单次传输 外设 每次DMA请求就传输一次DMA_PeripheralDataSize数据 存储器 每次DMA请求就传输一次DMA_PeripheralDataSize数据 2).突发传输 外设 每次DMA请求就传输DMA_MemoryBurst(4/8/16)个DMA_PeripheralDataSize(字节/半字/字)数据 存储器 每次DMA请求就传输DMA_MemoryBurst(4/8/16)个DMA_PeripheralDataSize(字节/半字/字)数据 突发传输是结合FIFO使用的,要求FIFO阈值一定是内存突发传输数据流(节拍*数据宽度)的整数倍 FIFO(共4级32位) 完成DMA数据流参数配置 DMA_Init(DMA2_STREAM0,&DMA_InitStructure) 参数选择 DMA1_Stream0 DMA1的通道0 DMA1_Stream1 DMA1的通道1 DMA1_Stream2 DMA1的通道2 DMA1_Stream3 DMA1的通道3 DMA1_Stream4 DMA1的通道4 DMA1_Stream5 DMA1的通道5 DMA1_Stream6 DMA1的通道6 DMA1_Stream7 DMA1的通道7 DMA2_Stream0 DMA2的通道0 DMA2_Stream1 DMA2的通道1 DMA2_Stream2 DMA2的通道2 DMA2_Stream3 DMA2的通道3 DMA2_Stream4 DMA2的通道4 DMA2_Stream5 DMA2的通道5 DMA2_Stream6 DMA2的通道6 DMA2_Stream7 DMA2的通道7 结合DMA_Init和DMA_InitStructure .DMA_Channel函数可以对外设请求进行通道和数据流进行选择
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服