您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 736-ST太M32 DMA中断状态寄存器
STM32DMADMA•DMA:Directmemoryaccessisusedinordertoprovidehigh-speeddatatransferbetweenperipheralsandmemoryaswellasmemorytomemory.•2DMA–DMA17通道–DMA25通道–仲裁器DMA寄存器•DMA_ISR中断状态寄存器•DMA_IFCR中断标志清除寄存器•DMA_CCRx通道配置寄存器•DMA_CNDTRx传输数量寄存器•DMA_CPARx外设地址寄存器•DMA_CMARx存储器地址寄存器固件库API函数DMA框图DMA工作流程•发送DMA请求信号到DMA控制器•DMA根据通道优先级来处理请求信号•DMA控制器发送一个应答信号•DMA传送的3个操作–从外设数据寄存器或者从DMA_CMARx寄存器指定地址的存储器单元执行加载操作–存数据到外设数据寄存器或者数据到DMA_CMARx寄存器指定地址的存储器单元–执行一次DMA_CNDTRx寄存器的递减操作。该寄存器包含未完成的操作数目。DMA通道•可编程的数据量–外设和存储器的传输数据量可以通过DMA_CCRx寄存器中的PSIZE和MSIZE位编程•指针增量–传输一个数据之后,下一个传输的地址自动完成增量DMA通道配置过程•1.在DMA_CPARx寄存器中设置外设寄存器的地址•2.在DMA_CMARx寄存器总设置数据存储器的地址•3.在DMA_CNDTRx寄存器中设置要传输的数据量•4.在DMA_CCRx寄存器的PL[1:0]位中设置通道的优先级•5.在DMA_CCRx寄存器中设置数据传输的方向、循环模式、外设和存储器的增量模式、外设和存储器的数据宽度、传输一半产生中断或者传输完成产生中断•6.设置DMA_CCRx寄存器的EN位,启动该通道。CPARx&&CMARxDMA_CNDTRxDMA_CCRx循环模式DMA使能中断使能方向增量优先级DMA_InitTypeDef固件库API函数循环模式•循环模式用于处理循环缓冲区和连续的数据传输•在DMA_CCRx寄存器中的CIRC位用于开启这一功能。•当启动了这个循环模式,数据传输的数目变为0时,将会自动地被恢复成配置通道时设置的初值,DMA操作将会继续进行。MEM2MEM•DMA通道的操作可以在没有外设请求的情况下进行,这种操作模式就是存储器到存储器模式。•设置DMA_CCRx寄存器中的MEM2MEM位之后,设置DMA_CCRx的EN位,DMA传输将马上开始。•这种模式不能与循环模式同时使用。DMA中断DMA请求映像DMA2数据传输宽度举例•使用DMA+外部触发(TIM6)来完成DAC实验1——以0.5V步长输出模拟电压实验分析•DMA•TIM•DAC1代码分析•主函数PA4_init()DMA2ch3_init()DAC1_init()TIM6_init()
本文标题:736-ST太M32 DMA中断状态寄存器
链接地址:https://www.777doc.com/doc-3132889 .html