static void ADC_Init(void)
{
/********************DMA配置**************************/
DMA2_Stream0->PAR=(uint32_t)&(ADC->CDR); //DMA外设地址 多重ADC->CDR
DMA2_Stream0->M0AR=(uint32_t)_AD_Value; //DMA 存储器0地址
DMA2_Stream0->NDTR=24; //传输数据项个数
DMA2_Stream0->CR=0; //先全部复位CR寄存器值
DMA2_Stream0->CR|=0<<25; //通道选择
DMA2_Stream0->CR|=0<<23; //存储器单次传输
DMA2_Stream0->CR|=0<<21; //外设单次传输
DMA2_Stream0->CR|=1<<16; //中等优先级 2:高 3:非常高
DMA2_Stream0->CR|=1<<13; //存储器数据大小为16位 0:8位 1:16位 2:32位
DMA2_Stream0->CR|=1<<11; //外设数据大小为16位 0:8位 1:16位 2:32位
DMA2_Stream0->CR|=1<<10; //存储器地址递增
DMA2_Stream0->CR|=0<<9; //外设地址固定
DMA2_Stream0->CR|=1<<8; //循环模式
DMA2_Stream0->CR|=0<<6; //外设到存储器 1:存储器到外设 2:存储器到存储器
DMA2_Stream0->CR|=1<<0; //开启DMA传输
/******************************************************/ /********************ADC通用配置**************************/
ADC->CCR|=1<<16; //ADCCLK=PCLK2/4=84/4=21Mhz,ADC时钟最好不要超过36Mhz
ADC->CCR|=1<<14; //多重DMA模式1
ADC->CCR|=1<<13; //多重DMA持续转换
ADC->CCR|=0X16; //仅三重模式规则同时模式
/******************************************************/ /********************CR1配置**************************/
ADC1->CR1|=1<<24; //10位模式 1:10位 2:8位 3:6位
ADC1->CR1|=1<<8; //扫描模式
ADC2->CR1|=1<<24; //10位模式 1:10位 2:8位 3:6位
ADC2->CR1|=1<<8; //扫描模式
ADC3->CR1|=1<<24; //10位模式 1:10位 2:8位 3:6位
ADC3->CR1|=1<<8; //扫描模式
/******************************************************/ /********************采样时间**************************/
ADC1->SMPR2|=7; //通道0的采样时间为480个周期
ADC1->SMPR2|=7<<3*1; //通道1的采样时间为480个周期
ADC1->SMPR2|=7<<3*2; //通道2的采样时间为480个周期
ADC1->SMPR2|=7<<3*3; //通道3的采样时间为480个周期
ADC1->SMPR2|=7<<3*4; //通道4的采样时间为480个周期
ADC1->SMPR2|=7<<3*5; //通道5的采样时间为480个周期
ADC1->SMPR2|=7<<3*6; //通道6的采样时间为480个周期
ADC1->SMPR2|=7<<3*7; //通道7的采样时间为480个周期 ADC2->SMPR2|=7<<3*8; //通道8的采样时间为480个周期
ADC2->SMPR2|=7<<3*9; //通道9的采样时间为480个周期
ADC2->SMPR1|=7; //通道10的采样时间为480个周期
ADC2->SMPR1|=7<<3*1; //通道11的采样时间为480个周期
ADC2->SMPR1|=7<<3*2; //通道12的采样时间为480个周期
ADC2->SMPR1|=7<<3*3; //通道13的采样时间为480个周期
ADC2->SMPR1|=7<<3*4; //通道14的采样时间为480个周期
ADC2->SMPR1|=7<<3*5; //通道15的采样时间为480个周期 ADC3->SMPR2|=7<<3*4; //通道4的采样时间为480个周期
ADC3->SMPR2|=7<<3*5; //通道5的采样时间为480个周期
ADC3->SMPR2|=7<<3*6; //通道6的采样时间为480个周期
ADC3->SMPR2|=7<<3*7; //通道7的采样时间为480个周期
ADC3->SMPR2|=7<<3*8; //通道8的采样时间为480个周期
ADC3->SMPR2|=7<<3*9; //通道9的采样时间为480个周期
ADC3->SMPR1|=7<<3*4; //通道14的采样时间为480个周期
ADC3->SMPR1|=7<<3*5; //通道15的采样时间为480个周期
/******************************************************/ /********************转换序列**************************/
ADC1->SQR1|=7<<20; //8个转换在规则序列中
ADC1->SQR3|=0; //第一次转换ADC_IN0
ADC1->SQR3|=1<<5; //第二次转换ADC_IN1
ADC1->SQR3|=2<<2*5; //第三次转换ADC_IN2
ADC1->SQR3|=3<<3*5; //第四次转换ADC_IN3
ADC1->SQR3|=4<<4*5; //第五次转换ADC_IN4
ADC1->SQR3|=5<<5*5; //第六次转换ADC_IN5
ADC1->SQR2|=6; //第七次转换ADC_IN6
ADC1->SQR2|=7<<5; //第八次转换ADC_IN7 ADC2->SQR1|=7<<20; //8个转换在规则序列中
ADC2->SQR3|=8; //第一次转换ADC_IN8
ADC2->SQR3|=9<<5; //第二次转换ADC_IN9
ADC2->SQR3|=10<<2*5; //第三次转换ADC_IN10
ADC2->SQR3|=11<<3*5; //第四次转换ADC_IN11
ADC2->SQR3|=12<<4*5; //第五次转换ADC_IN12
ADC2->SQR3|=13<<5*5; //第六次转换ADC_IN13
ADC2->SQR2|=14; //第七次转换ADC_IN14
ADC2->SQR2|=15<<5; //第八次转换ADC_IN15 ADC3->SQR1|=7<<20; //8个转换在规则序列中
ADC3->SQR3|=4; //第一次转换ADC_IN4
ADC3->SQR3|=5<<5; //第二次转换ADC_IN5
ADC3->SQR3|=6<<2*5; //第三次转换ADC_IN6
ADC3->SQR3|=7<<3*5; //第四次转换ADC_IN7
ADC3->SQR3|=8<<4*5; //第五次转换ADC_IN8
ADC3->SQR3|=9<<5*5; //第六次转换ADC_IN9
ADC3->SQR2|=14; //第七次转换ADC_IN14
ADC3->SQR2|=15<<5; //第八次转换ADC_IN15
/******************************************************/ ADC1->CR2|=1<<9; //使能ADC1_DMA
ADC1->CR2|=1<<8; //使能ADC1_DMA
ADC1->CR2|=1<<1; //连续转换
ADC1->CR2|=1<<0; //使能ADC1 ADC2->CR2|=1<<9; //使能ADC2_DMA
ADC2->CR2|=1<<1; //连续转换
ADC2->CR2|=1<<0; //使能ADC2 ADC3->CR2|=1<<9; //使能ADC2_DMA
ADC3->CR2|=1<<1; //连续转换
ADC3->CR2|=1<<0; //使能ADC3 ADC1->CR2|=1<<30; //开启AD转换器 }

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. 自制反汇编工具使用实例 其二(使用xmm寄存器初始化对象,以及空的成员函数指针)

    在反汇编代码中,当看到xmm寄存器,第一反应是将要进行浮点操作或访问,但是更加多的情况是在使用xmm寄存器初始化局部对象. 下面是自制反汇编工具翻译出来的代码: // -[CALayer setAll ...

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

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

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

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

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

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

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

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

  8. stm32寄存器版学习笔记08 DMA

    DMA(Direct Memory Access),直接存储器访问.DMA传输方式无需CPU直接控制传输,通过硬件为RAM与I/O设备开辟一条直接传送数据的通路,使CPU效率大大提高.stm32f10 ...

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

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

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

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

随机推荐

  1. day03-实现02

    实现02 3.实现任务阶段3-处理Servlet02 3.3Servlet规范设计 3.3.1MyServlet 该类模仿Servlet接口,为了简化,只声明了三个方法:init(),service( ...

  2. 16、有n个正数,使得前面每个数依次后移m个位置,最后m个数变成最前面m个数

    /* 有n个正数,使得前面每个数依次后移m个位置,最后m个数变成最前面m个数 */ #include <stdio.h> #include <stdlib.h> #define ...

  3. 数电第8周周结_by_yc

    基本知识: 1.有限状态机的分类: Moore型:输出仅与电路的状态有关: Mealy型:输出与当前电路状态和当前电路输入有关. 2.有限状态机的描述方法: 状态转换图:节点:状态(Moore输出): ...

  4. 【ASP.NET Core】MVC控制器的各种自定义:特性化的路由规则

    MVC的路由规则配置方式比较多,咱们用得最多的是两种: A.全局规则.就是我们熟悉的"{controller}/{action}". app.MapControllerRoute( ...

  5. 1.3 Apache Hadoop的重要组成-hadoop-最全最完整的保姆级的java大数据学习资料

    目录 1.3 Apache Hadoop的重要组成 1.3 Apache Hadoop的重要组成 Hadoop=HDFS(分布式文件系统)+MapReduce(分布式计算框架)+Yarn(资源协调框架 ...

  6. 预编译SQL为什么能够防止SQL注入

    前言 之前我一个搞网络安全的朋友问了我一个的问题,为啥用 PreparedStatement 预编译的 SQL 就不会有被 SQL 注入的风险? 第一时间我联想到的是八股文中关于 Mybatis 的脚 ...

  7. CCS选择器 选择器优先级 选择器常见属性

    目录 CSS前戏 1.css语法结构 2.css注释语法 3.引入css的多种方式 CSS基本选择器 1.标签选择器 2.类选择器 3.id选择器 4.通用选择器 CSS组合选择器 1.后代选择器(空 ...

  8. django中如何开启事务

    一:django中如何开启事务 1.事务的四大特征 ACID A: 原子性 每个事务都是不可分割的最小单位(同一个事物内的多个操作要么同时成功要么同时失败) C: 一致性 事物必须是使数据库从一个一致 ...

  9. 【深入浅出Spring原理及实战】「源码原理实战」从底层角度去分析研究PropertySourcesPlaceholderConfigurer的原理及实战注入机制

    Spring提供配置解析功能 主要有一下xml文件占位符解析和Java的属性@Value的占位符解析配置这两种场景进行分析和实现解析,如下面两种案例. xml文件的占位符解析配置 <bean i ...

  10. Python使用pipreqs生成requirements.txt

    当一个Python完成后,若要在新环境下运行,往往需要重新安装各种包依赖,这就需要记录当前环境下所用到的包.包的版本等,非常麻烦,这里介绍一种方法,可以较为快速便捷地生成requirements.tx ...