STM32 DMA传输
来源:互联网 发布:js控制class样式 编辑:程序博客网 时间:2024/05/13 01:54
DMA数据传输要考虑以下几点:
1. 数据源地址、数据 目的地址
2. 数据宽度
3. 数据传输方向
4. 数据传输字节数以及模式(循环模式或者单次模式)
5. 数据传输结束后是否发生中断或者产生传输半中中断
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);//使能DMA1外设 //配置串口2 DMA DMA_DeInit(DMA1_Channel7); DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)&USART2->DR; //定义了外设地址 DMA_InitStructure.DMA_MemoryBaseAddr = (u32)TxBuffer1; //定义了目的地址 DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST; //外设作为数据的目的地 DMA_InitStructure.DMA_BufferSize = 8; //传送数据缓存大小为8 DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; //定义地址在传送后是否会递增 DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//存到内存后地址递增 DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;//数据宽度是8位,字节型 DMA_InitStructure.DMA_Mode = DMA_Mode_Normal; //工作在正常缓存模式,还有一种是循环缓存模式 DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh; //通道拥有高优先级 DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;//用来设置是否是内存到内存传输 //DMA_Init(DMA1_Channel7, &DMA_InitStructure);
1. 数据地址是uint32_t数据类型,对数据地址赋值钱要进行强制类型转换。
获取外设数据地址的方法可以直接使用地址(u32)0x40004404,也可以使用(u32)&USART2->DR,显然第二种方法更简单实用。
2.传输方向是由SRAM传输到USART2->DR,由于USART2->DR只能接受8位的数据。所以总线数据宽度为8位,每次DMA传输传输8bit数据。
DMA_BufferSize指的是DMA的传输次数,并不是指DMA传输的字节数。传输字节数=传输次数*每次传输字节数。
3.数据传输方式为普通单次模式和循环模式。每传输一次,DMA_BufferSize自动减1,当为0时,DMA传输结束。如果为循环模式,DMA_BufferSize自动重载,DMA重新启动。但是如果为单次模式,DMA传输会结束,如果想再次启动DMA传输,必须要关闭DMA通道,重新进行配置DMA_BufferSize,重新使能DMA通道。
4.在英文参考手13章节注意以下传输宽度的不同设置会产生不同的传输效果。
0 0
- STM32 DMA传输
- STM32 ADC—DMA传输
- STM32的UART DMA传输总结
- STM32硬件IIC之DMA传输数据
- STM32的SPI采用DMA方式传输测试
- stm32 ADC全解(单次,连续DMA传输)
- STM32输入捕获加DMA传输的解决方案
- 在STM32上实现使用DMA+USART3传输数据
- stm32 ADC全解(单次,连续DMA传输)
- Stm32 DMA
- stm32 DMA
- STM32 DMA
- STM32->DMA
- stm32 DMA
- STM32 DMA正常模式等待传输完成和开始下一次传输
- STM32 DMA正常模式等待传输完成和开始下一次传输
- STM32 多通道ADC采样,采用Timer1进行采样率控制,利用DMA进行传输
- STM32 多通道ADC采样,采用Timer1进行采样率控制,利用DMA进行传输
- Win32汇编基础
- ASP.NET 重定向的几种方法
- android之图片异步加载并缓存到本地
- My First Blog
- mongodb 经常使用的命令
- STM32 DMA传输
- 18 Android ProgressBar
- myeclipse java web maven项目 并部署于tomcat上
- 将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)
- ifconfig lo
- CoreImage各种filter
- rg.apache.hadoop.security.AccessControlException: Permission denied: user=xxj, access=WRITE
- IOS判断是否安装了自己的另一个程序。
- sql2000嵌套查询的含义