1 void _DMA_Configuration(void)
2 {
3 DMA_InitTypeDef DMA_InitStructure;
4
5 /* DMA2 Stream0 channel0 configuration */
6 DMA_InitStructure.DMA_Channel = DMA_Channel_0;
7 DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&(ADC->CDR);
8 DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)_AD_Value;
9 DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory;
10 DMA_InitStructure.DMA_BufferSize = 24;
11 DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
12 DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
13 DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word;
14 DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word;
15 DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
16 DMA_InitStructure.DMA_Priority = DMA_Priority_High;
17 DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable;
18 DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull;
19 DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single;
20 DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;
21 DMA_Init(DMA2_Stream0, &DMA_InitStructure);
22
23 /* DMA2_Stream0 enable */
24 DMA_Cmd(DMA2_Stream0, ENABLE);
25 }
26 void _ADC_Configuration(void)
27 {
28 ADC_InitTypeDef ADC_InitStructure;
29 ADC_CommonInitTypeDef ADC_CommonInitStructure;
30
31 /* ADC Common configuration *************************************************/
32 ADC_CommonInitStructure.ADC_Mode = ADC_TripleMode_RegSimult;
33 ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;
34 ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_1;
35 ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div2;
36 ADC_CommonInit(&ADC_CommonInitStructure);
37
38 /* ADC1 regular channel 12 configuration ************************************/
39 ADC_InitStructure.ADC_Resolution = ADC_Resolution_10b;
40 ADC_InitStructure.ADC_ScanConvMode = ENABLE;
41 ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
42 ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;
43 ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
44 ADC_InitStructure.ADC_NbrOfConversion = 8;
45 ADC_Init(ADC1, &ADC_InitStructure);
46
47 ADC_RegularChannelConfig(ADC1, ADC_Channel_0 , 1, ADC_SampleTime_480Cycles);
48 ADC_RegularChannelConfig(ADC1, ADC_Channel_1 , 2, ADC_SampleTime_480Cycles);
49 ADC_RegularChannelConfig(ADC1, ADC_Channel_2 , 3, ADC_SampleTime_480Cycles);
50 ADC_RegularChannelConfig(ADC1, ADC_Channel_3 , 4, ADC_SampleTime_480Cycles);
51 ADC_RegularChannelConfig(ADC1, ADC_Channel_4 , 5, ADC_SampleTime_480Cycles);
52 ADC_RegularChannelConfig(ADC1, ADC_Channel_5 , 6, ADC_SampleTime_480Cycles);
53 ADC_RegularChannelConfig(ADC1, ADC_Channel_6 , 7, ADC_SampleTime_480Cycles);
54 ADC_RegularChannelConfig(ADC1, ADC_Channel_7 , 8, ADC_SampleTime_480Cycles);
55 /* Enable ADC1 DMA */
56 ADC_DMACmd(ADC1, ENABLE);
57
58 /* ADC2 regular channel 12 configuration ************************************/
59 ADC_Init(ADC2, &ADC_InitStructure);
60 /* ADC2 regular channel12 configuration */
61 ADC_RegularChannelConfig(ADC2, ADC_Channel_8 , 1, ADC_SampleTime_480Cycles);
62 ADC_RegularChannelConfig(ADC2, ADC_Channel_9 , 2, ADC_SampleTime_480Cycles);
63 ADC_RegularChannelConfig(ADC2, ADC_Channel_10, 3, ADC_SampleTime_480Cycles);
64 ADC_RegularChannelConfig(ADC2, ADC_Channel_11, 4, ADC_SampleTime_480Cycles);
65 ADC_RegularChannelConfig(ADC2, ADC_Channel_12, 5, ADC_SampleTime_480Cycles);
66 ADC_RegularChannelConfig(ADC2, ADC_Channel_13, 6, ADC_SampleTime_480Cycles);
67 ADC_RegularChannelConfig(ADC2, ADC_Channel_14, 7, ADC_SampleTime_480Cycles);
68 ADC_RegularChannelConfig(ADC2, ADC_Channel_15, 8, ADC_SampleTime_480Cycles);
69
70 /* ADC3 regular channel 12 configuration ************************************/
71 ADC_Init(ADC3, &ADC_InitStructure);
72 /* ADC3 regular channel12 configuration */
73 ADC_RegularChannelConfig(ADC3, ADC_Channel_4 , 1, ADC_SampleTime_480Cycles);
74 ADC_RegularChannelConfig(ADC3, ADC_Channel_5 , 2, ADC_SampleTime_480Cycles);
75 ADC_RegularChannelConfig(ADC3, ADC_Channel_6 , 3, ADC_SampleTime_480Cycles);
76 ADC_RegularChannelConfig(ADC3, ADC_Channel_7 , 4, ADC_SampleTime_480Cycles);
77 ADC_RegularChannelConfig(ADC3, ADC_Channel_8 , 5, ADC_SampleTime_480Cycles);
78 ADC_RegularChannelConfig(ADC3, ADC_Channel_9 , 6, ADC_SampleTime_480Cycles);
79 ADC_RegularChannelConfig(ADC3, ADC_Channel_14, 7, ADC_SampleTime_480Cycles);
80 ADC_RegularChannelConfig(ADC3, ADC_Channel_15, 8, ADC_SampleTime_480Cycles);
81
82 /* Enable DMA request after last transfer (multi-ADC mode) ******************/
83 ADC_MultiModeDMARequestAfterLastTransferCmd(ENABLE);
84
85 /* Enable ADC1 **************************************************************/
86 ADC_Cmd(ADC1, ENABLE);
87
88 /* Enable ADC2 **************************************************************/
89 ADC_Cmd(ADC2, ENABLE);
90
91 /* Enable ADC3 **************************************************************/
92 ADC_Cmd(ADC3, ENABLE);
93
94 /* Start ADC1 Software Conversion */
95 ADC_SoftwareStartConv(ADC1);
96
97 }

STM32F4库函数初始化系列:三重ADC——DMA的更多相关文章

  1. stm32之TIM+ADC+DMA采集50HZ交流信号

    http://cache.baiducontent.com/c?m=9d78d513d98207f04fece47f0d01d7174a02d1743ca6c76409c3e03984145b5637 ...

  2. STM32 F4 ADC DMA Temperature Sensor

    STM32 F4 ADC DMA Temperature Sensor Goal: detecting temperature variations using a temperature senso ...

  3. STM32CubeMX 多通道 ADC DMA 配置 测试小程序

    要点: 1.STM32F103C8T6单片机 2.ADC+DMA 多通道 重点是ADC+DMA配置,ADC+DMA配置如下 其他配置略略略略. 然后各位自行直看.ioc文件,生成代码后在while之前 ...

  4. STM32F4 SPI2初始化及收发数据【使用库函数】

    我的STM32F4 Discovery上边有一个加速度传感器LIS302DL.在演示工程中,ST的工程师使用这个传感器做了个很令人羡慕的东西:解算开发板的姿态.当开发板倾斜时候,处于最上边的LED点亮 ...

  5. 记STM32F030多通道ADC DMA读取乱序问题

    问题描述通过 uint16_t ConvData[8]保存DMA搬运的ADC转换数值,但是这个数组数值的顺序总是和ADC不是顺序对应的.比如用7个通道的ADC,当设置ADC_InitStructure ...

  6. 关于Stm32定时器+ADC+DMA进行AD采样的实现

    Stm32的ADC有DMA功能这都毋庸置疑,也是我们用的最多的!然而,如果我们要对一个信号(比如脉搏信号)进行定时采样(也就是隔一段时间,比如说2ms),有三种方法: 1.使用定时器中断每隔一定时间进 ...

  7. stm32 ADC模数转换 ADC多通道 ADC DMA

    通过调节电位器,改变AD转换值和电压值 STM32F1 ADC 配置步骤 1.使能GPIO时钟和ADC时钟 2.配置引脚模式为模拟输入 3.配置ADC的分频因子 4.初始化ADC参数,ADC_Init ...

  8. STM32F407 ADC DMA 采样实验

    转载:http://home.eeworld.com.cn/my/space-uid-361439-blogid-239703.html STM32F407ADC采样实验 热度 1已有 5472 次阅 ...

  9. 【ARM】2410裸机系列-ADC数模转换

    开发环境   1.硬件平台:FS2410 2.主机:Ubuntu 12.04 ADC寄存器配置       1.初始化ADC(ADCCON) 设置预分频,预分频因子,选择A/D转换通道,并选择正常模式 ...

  10. stm32CubeMx 实现单通道ADC DMA采集

    今天要做的是ADC单通道DMA采集实验 MCU : STM32F429 开发工具:STM32CubeMx 版本号 5.0.0 实验目的:实现ADC1 13通道 DMA采集 一 :简介 首先,我们来看一 ...

随机推荐

  1. Go语言核心36讲52

    你好,我是郝林. 专栏到这里,就要结束了. 差不多在半年以前(2018年的第二个季度),极客时间的总编辑郭蕾找到我,说想让我写一个关于Go语言的技术专栏. 我那时候还在轻松筹担任大数据负责人,管理着四 ...

  2. gRPC(Java) keepAlive机制研究

    基于java gRPC 1.24.2 分析 结论 gRPC keepAlive是grpc框架在应用层面连接保活的一种措施.即当grpc连接上没有业务数据时,是否发送pingpong,以保持连接活跃性, ...

  3. C#winform使用NOPI读取Excel读取图片

    需求:在Winform使用NOPI做导入时候,需要导入数据的同时导入图片. 虽然代码方面不适用(我好像也没仔细看过代码),但是感谢大佬给了灵感http://www.wjhsh.net/IT-Ramon ...

  4. 【图像处理笔记】SIFT算法原理与源码分析

    [图像处理笔记]总目录 0 引言 特征提取就是从图像中提取显著并且具有可区分性和可匹配性的点结构.常见的点结构一般为图像内容中的角点.交叉点.闭合区域中心点等具有一定物理结构的点,而提取点结构的一般思 ...

  5. Vue快速上门(2)-模板语法

    VUE家族系列: Vue快速上门(1)-基础知识 Vue快速上门(2)-模板语法 Vue快速上门(3)-组件与复用 01.模板语法 1.1.template模板 <template>是H5 ...

  6. Win10系统安装U盘,安装纯净版Win10的通用教程

    安装前准备:1.准备8G或8G以上U盘(32G以内).2.制作U盘会格式化U盘,U盘内的重要文件也要事先备份好.操作步骤:1.打开微软下载WIN10网址:(如果网址无法打开,可以下载解压运行附件内的工 ...

  7. week_6

    Andrew Ng 机器学习笔记 ---By Orangestar Week_6 (1) In Week 6, you will be learning about systematically im ...

  8. JavaScript:对象:如何去遍历输出一个对象的属性?语句for-in

    使用for-in的for循环语句,可以去遍历一个对象的属性,这类似于Java的增强for循环: 但是注意,这并不能遍历对象的所有属性,有些隐藏的属性,是无法遍历出来的,虽然我们可以通过控制台去查看这些 ...

  9. C++进阶(哈希)

    vector容器补充(下面会用到) 我们都知道vector容器不同于数组,能够进行动态扩容,其底层原理:所谓动态扩容,并不是在原空间之后接续新空间,因为无法保证原空间之后尚有可配置的空间.而是以原大小 ...

  10. if多条件判断

    在一个if语句中,括号里面包含多个条件时.条件是否被执行要看if语句里面各个条件是"与"的关系还是"或"的关系. #include<stdio.h> ...