示例代码1 采集2通道ADC数据

查看代码
extern uint16_t  ADC3ConvertedValue[2];
/* DMA2 Stream0 channel2 配置 **************************************/
DMA_InitStructure.DMA_Channel = DMA_Channel_2;
DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)ADC3_DR_ADDRESS;
DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)ADC3ConvertedValue;
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory;
DMA_InitStructure.DMA_BufferSize = 2;
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
DMA_InitStructure.DMA_Priority = DMA_Priority_High;
DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable;
DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull;
DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single;
DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;
DMA_Init(DMA2_Stream0, &DMA_InitStructure);
DMA_Cmd(DMA2_Stream0, ENABLE);

示例代码2 采集4通道ADC数据

查看代码

extern uint16_t uhADCConvertedValue[4];
/* DMA2 Stream0 channel0 配置-------------------------------------------------- */
DMA_InitStructure.DMA_Channel = DMA_Channel_0;
DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)ADC1_DR_ADDRESS;
DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)&uhADCConvertedValue;;
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory;
DMA_InitStructure.DMA_BufferSize = 4;
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
DMA_InitStructure.DMA_Priority = DMA_Priority_High;
DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable;
DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull;
DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single;
DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;
DMA_Init(DMA2_Stream0, &DMA_InitStructure);

对比这两处代码,我们可以得出的结论是:

DMA_InitStructure.DMA_BufferSize   = DMA传输的次数 = 目标数组的大小
DMA_InitStructure.DMA_MemoryDataSize =单次传输的数据的字节数(1/2/4)

STM32 DMA中的DMA_BufferSize和DMA_MemoryDataSize   的更多相关文章

  1. stm32 DMA数据搬运 [操作寄存器+库函数](转)

    源:stm32 DMA数据搬运 [操作寄存器+库函数]        DMA(Direct Memory Access)常译为“存储器直接存取”.早在Intel的8086平台上就有了DMA应用了.   ...

  2. STM32 DMA简述

    STM32 DMA简述 DMA (Direct Memory Access) 直接内存存储器,在做数据传输时能够大大减轻CPU的负担. DMA的作用 DMA提供了一个关于数据的高数传输通道,这个通道不 ...

  3. 关于STM32 (Cortex-M3) 中NVIC的分析

    一.STM32 (Cortex-M3) 中的优先级概念 STM32(Cortex-M3)中有两个优先级的概念:抢占式优先级和响应优先级,也把响应优先级称作"亚优先级"或" ...

  4. STM32 DMA模块的配置与使用

    DMA有什么用? 直接存储器存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输.无须CPU的干预,通过DMA数据可以快速地移动.这就节省了CPU的资源来做其他操作. 有多少个DMA资源 ...

  5. STM32 DMA使用详解

    DMA部分我用到的相对简单,当然,可能这是新东西,我暂时还用不到它的复杂功能吧.下面用问答的形式表达我的思路. DMA有什么用? 直接存储器存取用来提供在外设和存储器之间或者存储器和存储器之间的高速数 ...

  6. stm32 DMA配置

    DMA就是将一个地址空间复制到另外一个地址空间.DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM与I/O设备直接传送数据,使CPU的效率大大的提高 ...

  7. STM32 DMA USART ADC

    转载自:http://www.cnblogs.com/UQYT/articles/2949794.html 这是一个综合的例子,演示了ADC模块.DMA模块和USART模块的基本使用. 我们在这里设置 ...

  8. STM32—DMA存储器到外设

    DMA目录 DMA简介 DMA框图 DMA传输数据分析 1.传输的方向 2.传输的数量 3.传输的模式 代码部分 DMA初始化结构体 USART配置函数 DMA配置函数 主函数 DMA简介 DMA(D ...

  9. STM32——DMA接收和发送的实现

    最近写程序,需要一段一段数据的接收,再通过其他串口发送出去. 老司机们建议用DMA通信,以节约CPU资源.然后,我听了,发现挺好用的.特此,把自己写的代码贴上了. DMA发送接收的步骤如下: 1.初始 ...

  10. 关于STM32库中 __IO 修饰符(volatile修饰符,反复无常的意思)

    STM32例子代码中会有像这样的代码 static __IO uint32_t TimingDelay;  这里边的__IO修饰符不好理解,单从字面可以看出是为IO相关,查其标准库可以得知这个__IO ...

随机推荐

  1. 经典算法的Java实现

    1.快速排序描述 1.每一轮排序选择一个基准点(pivot)进行分区 1.让小于基准点的元素进入一个分区,大于基准点的元素进入另一个分区 2.当分区完成时,基准点元素的位置就是其最终位置 2.在子分区 ...

  2. C++:随机数生成

    C++中生成随机数:需要用到的函数,一个是rand(),该函数只返回一个伪随机数.生成随机数之前必须先调用srand()函数. 生成随机数 #include iostream; #include ct ...

  3. nacos(一): 下载、运行与鉴权配置

    1.下载 nacao的官网地址是https://nacos.io/ 当前稳定版本是2.5.0,可以在官网下载,也可以在github上下载.其中,官网提供的下载地址是: https://download ...

  4. 本地部署 DeepSeek Janus Pro 文生图大模型

    Hello, 大家新年好. 在这个春节期间最火的显然是 DeepSeek 了.据不负责统计朋友圈每天给我推送关于 DeepSeek 的文章超过20篇.打开知乎跟B站也全是 DeepSeek 相关的内容 ...

  5. linux下创建idea的桌面快捷方式

    !!!使用linux系统安装idea才会用到: 在桌面上,新建文件,命名为:idea.desktop , (或者在别的地方创建后再放到桌面) 使用 vim 编辑该文件(或者不新建,直接vi idea. ...

  6. Flume概念和启动过程分析

    一.概念 flume是一个分布式.可靠.和高可用的海量日志采集.聚合和传输的系统. Flume系统中核心的角色是agent,agent本身是一个Java进程,一般运行在日志收集节点. 一个agent内 ...

  7. Luogu P8710 [蓝桥杯 2020 省 AB1] 网络分析 题解 [ 绿 ] [ 带权并查集 ]

    原题 分析 本题由于从一个节点发信息,同一个集合内的所有点都会收到信息,显然是一道要求维护各节点间关系的题,因此采用并查集的数据结构进行求解. 但由于维护关系的同时还要维护权值,所以采用带权并查集,它 ...

  8. 用豆包+Kimi,一分钟生成想要的PPT!

    大家好!在快节奏的现代社会,时间就是金钱.对于经常需要制作PPT的朋友们来说,如何快速.高效地完成演示文稿的制作一直是个头疼的问题.今天,我要给大家介绍如何利用AI工具:豆包+kimi,让你在一分钟内 ...

  9. Java 加密和解密

    在 Java 中,加密和解密通常通过 Java Cryptography Architecture (JCA) 和 Java Cryptography Extension (JCE) 实现.以下是常见 ...

  10. 如何在 PIP 配置文件中设置默认源?

    在不同的操作系统中,在 PIP 配置文件中设置默认源的方法如下: Windows 操作系统 打开文件资源管理器,在地址栏输入 %APPDATA% 并回车,进入用户配置目录. 在该目录下创建一个名为 p ...