STM32F4 DMA
来源:互联网 发布:营销活动数据分析报告 编辑:程序博客网 时间:2024/05/01 01:46
DMA是一个搬运工。
1.DMA配置过程(串口发送DMA):
① 使能DMA时钟:RCC_AHB1PeriphClockCmd();
② 初始化DMA通道参数:DMA_Init();
③使能串口DMA发送,串口DMA使能函数:USART_DMACmd();
④查询DMA的EN位,确保数据流就绪,可以配置:DMA_GetCmdStatus();
⑤设置通道当前剩余数据量:DMA_SetCurrDataCounter();
⑥使能DMA1通道,启动传输:DMA_Cmd();
⑤查询DMA传输状态:DMA_GetFlagStatus();
⑥获取/设置通道当前剩余数据量:DMA_GetCurrDataCounter();
2.DMA配置函数:
void DMA_Config_Test(DMA_Stream_TypeDef* DMA_Streamx,u32 Channel,u32 PeripheralBaseAddr,u32 MemoryBaseAddr,u16 Date){ DMA_InitTypeDef DMA_InitStruct; if((u32 )DMA_Streamx>(u32)DMA2) { RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2,ENABLE); } else RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA1,ENABLE); while(DMA_GetCmdStatus(DMA_Streamx)!=DISABLE); DMA_InitStruct.DMA_Channel=Channel; DMA_InitStruct.DMA_Memory0BaseAddr=MemoryBaseAddr; DMA_InitStruct.DMA_PeripheralBaseAddr=PeripheralBaseAddr; DMA_InitStruct.DMA_DIR=DMA_DIR_MemoryToPeripheral; DMA_InitStruct.DMA_BufferSize=Date; DMA_InitStruct.DMA_PeripheralInc=DMA_PeripheralInc_Disable; DMA_InitStruct.DMA_MemoryInc=DMA_MemoryInc_Enable; DMA_InitStruct.DMA_MemoryDataSize=DMA_MemoryDataSize_Byte; DMA_InitStruct.DMA_PeripheralDataSize=DMA_PeripheralDataSize_Byte; DMA_InitStruct.DMA_Mode=DMA_Mode_Normal; DMA_InitStruct.DMA_Priority=DMA_Priority_Medium; DMA_InitStruct.DMA_FIFOMode=DMA_FIFOMode_Disable; DMA_InitStruct.DMA_FIFOThreshold=DMA_FIFOThreshold_Full; DMA_InitStruct.DMA_MemoryBurst=DMA_MemoryBurst_Single; DMA_InitStruct.DMA_PeripheralBurst=DMA_PeripheralBurst_Single; DMA_Init(DMA_Streamx, &DMA_InitStruct);}void DMA_Enable(DMA_Stream_TypeDef* DMA_Streamx,u16 Date){ DMA_Cmd(DMA_Streamx,DISABLE); while(DMA_GetCmdStatus(DMA_Streamx)!=DISABLE); DMA_SetCurrDataCounter(DMA_Streamx,Date); DMA_Cmd(DMA_Streamx,ENABLE);}
0 0
- STM32F4 DMA
- stm32f4-discovery DMA
- STM32F4 UART DMA初始化
- STM32F4 ADC DMA 问题
- STM32F4串口DMA配置
- STM32F4 UART DMA初始化
- STM32F4(USART+DMA+动态内存)
- STM32F4(USART+DMA+静态内存)
- STM32F4 HAL库DMA学习
- STM32F4使用DMA收发数据
- stm32f4 DAC DMA 频率发生器+FreeRTOS
- stm32f4中通过dma采集adc
- stm32f4 ADC DMA 模式 中断进不去解决
- stm32F4 串口DMA+环形缓冲区的实现
- STM32F4 ADC采集数据的DMA数据传输【库函数操作】
- STM32F4学习(四)——Usart+DMA
- (转)stm32F4-----DMA的FIFO作用和用法
- STM32F4 UART1 DMA发送和接收不定长度数据
- 关于 spingMVC aop和ioc的理解与概念
- android 文档阅读记录-添加fragment
- 树状数组
- 常用的11个git命令
- 1123常识
- STM32F4 DMA
- 当Butterknife遇到Dagger
- 2016.11.25总结
- 让Activity更加简洁第一篇---MVP模式
- API 25 (Android 7.1.1 API) widget.FrameLayout
- Android 调整屏幕亮度
- JAVa
- 关于MD5解析的疑问
- 将多个putty窗口合并