STM32F4寄存器初始化系列:三重ADC——DMA
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的更多相关文章
- 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 ...
- 自制反汇编工具使用实例 其二(使用xmm寄存器初始化对象,以及空的成员函数指针)
在反汇编代码中,当看到xmm寄存器,第一反应是将要进行浮点操作或访问,但是更加多的情况是在使用xmm寄存器初始化局部对象. 下面是自制反汇编工具翻译出来的代码: // -[CALayer setAll ...
- STM32CubeMX 多通道 ADC DMA 配置 测试小程序
要点: 1.STM32F103C8T6单片机 2.ADC+DMA 多通道 重点是ADC+DMA配置,ADC+DMA配置如下 其他配置略略略略. 然后各位自行直看.ioc文件,生成代码后在while之前 ...
- 关于Stm32定时器+ADC+DMA进行AD采样的实现
Stm32的ADC有DMA功能这都毋庸置疑,也是我们用的最多的!然而,如果我们要对一个信号(比如脉搏信号)进行定时采样(也就是隔一段时间,比如说2ms),有三种方法: 1.使用定时器中断每隔一定时间进 ...
- 记STM32F030多通道ADC DMA读取乱序问题
问题描述通过 uint16_t ConvData[8]保存DMA搬运的ADC转换数值,但是这个数组数值的顺序总是和ADC不是顺序对应的.比如用7个通道的ADC,当设置ADC_InitStructure ...
- 【ARM】2410裸机系列-ADC数模转换
开发环境 1.硬件平台:FS2410 2.主机:Ubuntu 12.04 ADC寄存器配置 1.初始化ADC(ADCCON) 设置预分频,预分频因子,选择A/D转换通道,并选择正常模式 ...
- stm32寄存器版学习笔记08 DMA
DMA(Direct Memory Access),直接存储器访问.DMA传输方式无需CPU直接控制传输,通过硬件为RAM与I/O设备开辟一条直接传送数据的通路,使CPU效率大大提高.stm32f10 ...
- stm32 ADC模数转换 ADC多通道 ADC DMA
通过调节电位器,改变AD转换值和电压值 STM32F1 ADC 配置步骤 1.使能GPIO时钟和ADC时钟 2.配置引脚模式为模拟输入 3.配置ADC的分频因子 4.初始化ADC参数,ADC_Init ...
- STM32F4 SPI2初始化及收发数据【使用库函数】
我的STM32F4 Discovery上边有一个加速度传感器LIS302DL.在演示工程中,ST的工程师使用这个传感器做了个很令人羡慕的东西:解算开发板的姿态.当开发板倾斜时候,处于最上边的LED点亮 ...
随机推荐
- day03-实现02
实现02 3.实现任务阶段3-处理Servlet02 3.3Servlet规范设计 3.3.1MyServlet 该类模仿Servlet接口,为了简化,只声明了三个方法:init(),service( ...
- 16、有n个正数,使得前面每个数依次后移m个位置,最后m个数变成最前面m个数
/* 有n个正数,使得前面每个数依次后移m个位置,最后m个数变成最前面m个数 */ #include <stdio.h> #include <stdlib.h> #define ...
- 数电第8周周结_by_yc
基本知识: 1.有限状态机的分类: Moore型:输出仅与电路的状态有关: Mealy型:输出与当前电路状态和当前电路输入有关. 2.有限状态机的描述方法: 状态转换图:节点:状态(Moore输出): ...
- 【ASP.NET Core】MVC控制器的各种自定义:特性化的路由规则
MVC的路由规则配置方式比较多,咱们用得最多的是两种: A.全局规则.就是我们熟悉的"{controller}/{action}". app.MapControllerRoute( ...
- 1.3 Apache Hadoop的重要组成-hadoop-最全最完整的保姆级的java大数据学习资料
目录 1.3 Apache Hadoop的重要组成 1.3 Apache Hadoop的重要组成 Hadoop=HDFS(分布式文件系统)+MapReduce(分布式计算框架)+Yarn(资源协调框架 ...
- 预编译SQL为什么能够防止SQL注入
前言 之前我一个搞网络安全的朋友问了我一个的问题,为啥用 PreparedStatement 预编译的 SQL 就不会有被 SQL 注入的风险? 第一时间我联想到的是八股文中关于 Mybatis 的脚 ...
- CCS选择器 选择器优先级 选择器常见属性
目录 CSS前戏 1.css语法结构 2.css注释语法 3.引入css的多种方式 CSS基本选择器 1.标签选择器 2.类选择器 3.id选择器 4.通用选择器 CSS组合选择器 1.后代选择器(空 ...
- django中如何开启事务
一:django中如何开启事务 1.事务的四大特征 ACID A: 原子性 每个事务都是不可分割的最小单位(同一个事物内的多个操作要么同时成功要么同时失败) C: 一致性 事物必须是使数据库从一个一致 ...
- 【深入浅出Spring原理及实战】「源码原理实战」从底层角度去分析研究PropertySourcesPlaceholderConfigurer的原理及实战注入机制
Spring提供配置解析功能 主要有一下xml文件占位符解析和Java的属性@Value的占位符解析配置这两种场景进行分析和实现解析,如下面两种案例. xml文件的占位符解析配置 <bean i ...
- Python使用pipreqs生成requirements.txt
当一个Python完成后,若要在新环境下运行,往往需要重新安装各种包依赖,这就需要记录当前环境下所用到的包.包的版本等,非常麻烦,这里介绍一种方法,可以较为快速便捷地生成requirements.tx ...