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点亮 ...
随机推荐
- C++ undered_map哈希表用法——leetcode两数之和
undered_map 头文件:#include<undered_map> 创建表undered_map<key,value> Map_name; 插入元素 a[key]=va ...
- UWSGI 安装出现 ModuleNotFoundError: No module named '_ctypes'
原因:Python3中有个内置模块叫ctypes,它是Python3的外部函数库模块,它提供兼容C语言的数据类型,并通过它调用Linux系统下的共享库(Shared library),此模块需要使用C ...
- 快速构建页面结构的 3D Visualization
对 Chrome 扩展功能熟悉的小伙伴,可能都有用过 Chrome 的 3D 展示页面层级关系这个功能. 可以通过 控制台 --> 右边的三个小点 --> More Tools --> ...
- 使用c#的 async/await编写 长时间运行的基于代码的工作流的 持久任务框架
持久任务框架 (DTF) 是基于async/await 工作流执行框架.工作流的解决方案很多,包括Windows Workflow Foundation,BizTalk,Logic Apps, Wor ...
- sublime text配置java运行环境
java正常运行流程 首先一个 test.java 文件 如果要运行这个文件需要先编译 javac test.java 然后在同级目录会生成一个test.class 文件 然后 java test 来 ...
- ArcGIS API for JS 访问浏览器提示不安全链接的服务时 如何设置
当我们通过ArcGISServer发布了服务后,首先要在要访问的计算机上通过浏览器访问下服务是否可用.但有时候会出现不安全的标识. 如果这样的链接直接放到代码中,可能会加载失败. 代码如下. var ...
- 批量将多个相同Excel表格内容合并到一个Excel表格的sheet工作簿当中。
Sub Books2Sheets()Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) Dim ...
- Redis的常见应用场景
缓存.分布式数据共享.setnx分布式锁.incrby全局id进行分库分表.计数器.限流(ip为key,计数超过阈值则返回false).购物车(hash,用户key-商品field-数量value). ...
- 简易博客页面小项目 html css
项目预览 代码 html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- 下载kali以及安装
一.kali下载 下载地址:https://www.kali.org/get-kali/#kali-virtual-machines 二.kali安装 1.打开VMware,打开文件,选择刚刚下载并解 ...