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采集 一 :简介 首先,我们来看一 ...
随机推荐
- 关于phalcon框架中DI的理解
DI(依赖注入) https://www.imooc.com/learn/867 https://www.imooc.com/learn/912
- 【OpenStack云平台】网络控制节点 HA 集群配置
个人名片: 因为云计算成为了监控工程师 个人博客:念舒_C.ying CSDN主页️:念舒_C.ying 网络控制节点运行在管理网络和数据网络中,如果虚拟机实例要连接到互联网,网络控制节点也需要具备 ...
- HTTP Analyzer 伴侣,解决Probably another instance is already up
解决方案1: NET START HttpAnalyzer_StdV7_NetFilter START start HttpAnalyzerStdV7.exe将以上内容保存为.bat 解决方案2: p ...
- 编译安装oh-my-zsh
1.前言 oh-my-zsh是基于zsh的一套美化工具,其内部也提供很多主题以及插件.github介绍 2.有啥用 对我来说可能查看git分支更加直观,另外其强大的补全功能 又或者更加直观的查看上一条 ...
- 卸载virtualbox中linux虚拟机的增强工具
报错信息 vboxclient:the virtualbox kernel service is not running 前言 我由virtualbox换到vmware 遇到了这个问题,很烦每次都通知 ...
- javaweb string
今天遇到一个跨域请求jsonp格式报错,其原因是其中一个参数过从我方数据库取出就带有换行格式的,类似于: 这条数据竟然自带格式换行. 而我们现常用的trim()只能去掉字符串的头部和尾部的空格, 而要 ...
- ArcEngine 释放对象
释放对象 例如IFeatureCursor,IFeatureClass等 ESRI.ArcGIS.ADF.ComReleaser.ReleaseCOMObject(myFeatureCursor); ...
- 【Linux】通过Crontab和shell脚本实现定期备份和删除PG数据库表数据
〇.参考资料 一.Crontab使用 1.查看状态 service crond status 2.新建crontab任务 crontab -e 输入字符串 * * * * * cd /home/big ...
- JavaEE Day05 JDBC(用Java语言操作数据库)
今日内容 基本概念 快速入门 对JDBC中各个接口和类的详解 一.基本概念 1.概念:Java Database Connectivity:Java数据库连接,Java语言操作数据库 2.本质:官方( ...
- MySQL事务(四大特性)-存储过程
目录 一:事务 1.四大特性(ACID) 2.事物存在的必要性(真实比喻) 3.如何使用事务 4.开启事务-回滚-确认 二:事务案例实战 1.模拟消费 2.创建 3.插入数据 4.开启事务 5.修改操 ...