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. iOS逆向之某多多App抓包

    阅读此文档的过程中遇到任何问题,请关注公众号[移动端Android和iOS开发技术分享]或加QQ群[309580013] 1.目标 由于某多多App现使用longlink进行数据传输,使用charle ...

  2. HDC2022的无障碍参会体验,手语服务是如何做到的?

    华为开发者大会2022(HDC)上,HMS Core手语数字人以全新形象亮相,并在直播中完成了长达3个多小时的实时手语翻译,向线上线下超过一千万的观众提供了专业.实时.准确的手语翻译服务,为听障人士提 ...

  3. 研究光度立体法阶段性小结和优化(可20ms获取4个2500*2000灰度图的Normal Map)。

    这个东西是我接触的第一个非2D方面的算法,到目前为止其实也没有完全搞定,不过可能短时间内也无法突破.先把能搞定的搞定吧. 这个东西也有一大堆参考资料,不过呢,搜来搜去其实也就那些同样的东西,个人觉得就 ...

  4. day18 批量查询与模糊查询 & 聚合函数与内置函数 & distinct关键字 & 分页查询limit & 排序order

    day18 两个表student和user student id s_name s_age s_sex user id u_name u_age u_sex 批量插入 insert into stud ...

  5. 除了 filter 还有什么置灰网站的方式?

    大家都知道,当一些重大事件发生的时候,我们的网站,可能需要置灰,像是这样: 当然,通常而言,全站置灰是非常简单的事情,大部分前端同学都知道,仅仅需要使用一行 CSS,就能实现全站置灰的方式. 像是这样 ...

  6. Java 中 String 与 StringBuffer 和 StringBuilder 的区别

    简介: String 是 Java 中很常用的类之一,同时,字符串是 Java 面试中最重要的话题之一. StringBuffer 和 StringBuilder 类提供了操作字符串的方法. 我们将研 ...

  7. docker部署项目

    @ 目录 前言 一.下载安装docker: 1.前提工作 1.1 查看linux版本 1.2 yum包更新到最新 1.3 安装工具包 1.4 设置yum源并更新yum包索引 2.安装docker 2. ...

  8. Chaos 测试下的若干 NebulaGraph Raft 问题分析

    Raft 是一种广泛使用的分布式共识算法.NebulaGraph 底层采用 Raft 算法实现 metad 和 storaged 的分布式功能.Raft 算法使 NebulaGraph 中的 meta ...

  9. week_8

    Andrew Ng 机器学习笔记 ---By Orangestar Week_7_Unsupervised Learning While supervised learning algorithms ...

  10. uniapp 微信小程序 实现左侧菜单右侧列表,双向联动的效果

    <template> <view class="u-wrap"> <view class="u-search-box"> & ...