STM32F4库函数初始化系列:三重ADC——DMA
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的更多相关文章
- stm32之TIM+ADC+DMA采集50HZ交流信号
http://cache.baiducontent.com/c?m=9d78d513d98207f04fece47f0d01d7174a02d1743ca6c76409c3e03984145b5637 ...
- STM32 F4 ADC DMA Temperature Sensor
STM32 F4 ADC DMA Temperature Sensor Goal: detecting temperature variations using a temperature senso ...
- STM32CubeMX 多通道 ADC DMA 配置 测试小程序
要点: 1.STM32F103C8T6单片机 2.ADC+DMA 多通道 重点是ADC+DMA配置,ADC+DMA配置如下 其他配置略略略略. 然后各位自行直看.ioc文件,生成代码后在while之前 ...
- STM32F4 SPI2初始化及收发数据【使用库函数】
我的STM32F4 Discovery上边有一个加速度传感器LIS302DL.在演示工程中,ST的工程师使用这个传感器做了个很令人羡慕的东西:解算开发板的姿态.当开发板倾斜时候,处于最上边的LED点亮 ...
- 记STM32F030多通道ADC DMA读取乱序问题
问题描述通过 uint16_t ConvData[8]保存DMA搬运的ADC转换数值,但是这个数组数值的顺序总是和ADC不是顺序对应的.比如用7个通道的ADC,当设置ADC_InitStructure ...
- 关于Stm32定时器+ADC+DMA进行AD采样的实现
Stm32的ADC有DMA功能这都毋庸置疑,也是我们用的最多的!然而,如果我们要对一个信号(比如脉搏信号)进行定时采样(也就是隔一段时间,比如说2ms),有三种方法: 1.使用定时器中断每隔一定时间进 ...
- stm32 ADC模数转换 ADC多通道 ADC DMA
通过调节电位器,改变AD转换值和电压值 STM32F1 ADC 配置步骤 1.使能GPIO时钟和ADC时钟 2.配置引脚模式为模拟输入 3.配置ADC的分频因子 4.初始化ADC参数,ADC_Init ...
- STM32F407 ADC DMA 采样实验
转载:http://home.eeworld.com.cn/my/space-uid-361439-blogid-239703.html STM32F407ADC采样实验 热度 1已有 5472 次阅 ...
- 【ARM】2410裸机系列-ADC数模转换
开发环境 1.硬件平台:FS2410 2.主机:Ubuntu 12.04 ADC寄存器配置 1.初始化ADC(ADCCON) 设置预分频,预分频因子,选择A/D转换通道,并选择正常模式 ...
- stm32CubeMx 实现单通道ADC DMA采集
今天要做的是ADC单通道DMA采集实验 MCU : STM32F429 开发工具:STM32CubeMx 版本号 5.0.0 实验目的:实现ADC1 13通道 DMA采集 一 :简介 首先,我们来看一 ...
随机推荐
- 并发bug之源(二)-有序性
什么是有序性? 简单来说,假设你写了下面的程序: int a = 1; int b = 2; System.out.println(a); System.out.println(b); 但经过编译器/ ...
- @responseBody 返回更多数据
@responseBody:注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据,需 ...
- Go | 闭包的使用
闭包基本介绍 闭包就是 一个函数 和其相关的 引用环境 组合的一个整体 好处: 保存引用的变量,下次继续使用,不会销毁 下面通过闭包的方式,写一个数字累加器,体验一下闭包的妙处 闭包实现数字累加 pa ...
- Selenium4+Python3系列(十三) - 与docker中的jenkins持续集成
前言 文章更新到这一篇时,其实我还是很开心的,因为这也正是这系列教程的最后一篇文章,也算是完成了一个阶段性的小目标,也很感谢那些愿意看我文章与我交流学习的同学,感谢有你们的支持和陪伴. Jenkins ...
- 如何在SpringBoot中优雅地重试调用第三方API?
前言 作为后端程序员,我们的日常工作就是调用一些第三方服务,将数据存入数据库,返回信息给前端.但你不能保证所有的事情一直都很顺利.像有些第三方API,偶尔会出现超时.此时,我们要重试几次,这取决于你的 ...
- SQLMap入门——判断文本中的请求是否存在注入
从文件中加载HTTP请求,SQLMap可以从一个文本文件中获取HTTP请求,这样就可以不设置其他参数(如cookie.POST数据等),txt文件中的内容为Web数据包 文本文件如图(请求数据可以通过 ...
- pickle兼容问题
1 import pickle 2 3 with open('a.pkl',mode='wb') as f: 4 # 一:在python3中执行的序列化操作如何兼容python2 5 # python ...
- HTML笨方法仿写站酷
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- [深度学习] imgaug边界框增强笔记
imgaug边界框增强笔记主要是讲述基于imgaug库对目标检测图像的边界框进行图像增强.本文需要掌握imgaug库的基本使用,imgaug库的基本使用见[深度学习] imgaug库使用笔记. 文章目 ...
- Input源码解读——从"Show tabs"开始
Input源码解读--从"Show tabs"开始 本文基于Android T版本源码,梳理当用户在开发者选项中开启Show tabs功能后显示第点按操作的视觉反馈的原理,来进一步 ...