STM32F1库函数初始化系列:DMA—ADC采集
1 void ADC_Configure(void)
2 {
3 ADC_InitTypeDef ADC_InitStructure;
4 GPIO_InitTypeDef GPIO_InitStructure;
5 RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);
6 RCC_AHBPeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);
7
8 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6;
9 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
10 GPIO_Init(GPIOA, &GPIO_InitStructure);
11
12 RCC_ADCCLKConfig(RCC_PCLK2_Div4); //配置ADC时钟分频 2,4,6,8
13 ADC_InitStructure.ADC_Mode=ADC_Mode_Independent; //独立工作模式
14 ADC_InitStructure.ADC_ScanConvMode=ENABLE; //工作在扫描模式
15 ADC_InitStructure.ADC_ContinuousConvMode=ENABLE; //连续模式
16 ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None; //转换由软件触发启动
17 //ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_T1_CC1; //定时器1的捕获比较通道1作为外部触发转换源(T1_2,T1_3,T2_2,T4_4)
18 //ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_Ext_1T11; //外部中断通道11的事件作为外部触发转换源
19 ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right; //ADC数据右对齐
20 ADC_InitStructure.ADC_NbrOfChannel =5; //进行规则转换的ADC通道的数目为2
21 ADC_Init(ADC1,&ADC_InitStructure);
22 ADC_RegularChannelConfig(ADC1,ADC_Channel_2,1,ADC_SampleTime_55Cycles5); //选择通道2,转换顺序1,采样时间为1.5周期
23 ADC_RegularChannelConfig(ADC1,ADC_Channel_3,2,ADC_SampleTime_55Cycles5); //选择通道3,转换顺序2,采样时间为1.5周期
24 ADC_RegularChannelConfig(ADC1,ADC_Channel_4,3,ADC_SampleTime_55Cycles5); //选择通道4,转换顺序3,采样时间为1.5周期
25 ADC_RegularChannelConfig(ADC1,ADC_Channel_5,4,ADC_SampleTime_55Cycles5); //选择通道5,转换顺序4,采样时间为1.5周期
26 ADC_RegularChannelConfig(ADC1,ADC_Channel_6,5,ADC_SampleTime_55Cycles5); //选择通道6,转换顺序5,采样时间为1.5周期
27 ADC_DMACmd(ADC1, ENABLE);
28 ADC_Cmd(ADC1,ENABLE); //使能AD1
29 ADC_ResetCalibration(ADC1); //复位ADC1的校准寄存器
30 ADC_StartCalibration(ADC1); //开始ADC1的校准
31 while(ADC_GetCalibrationStatus(ADC1)); //等待ADC1校准完成
32 ADC_SoftwareStartConvCmd(ADC1,ENABLE); //启动ADC1转换
33 }
34 void DMA_Configure(void)
35 {
36 DMA_InitTypeDef DMA_InitStructure;
37 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLE);
38 DMA_DeInit(DMA1_Channel1); //复位DMA1通道
39 DMA_InitStructure.DMA_PeripheralBaseAddr=DR_ADDRESS;
40 DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)ad_value;
41 DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; //外设作为数据传输的来源
42 DMA_InitStructure.DMA_M2M=DMA_M2M_Disable;
43 DMA_InitStructure.DMA_BufferSize = 5; //
44 DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; //外设地址不变
45 DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; //内存地址递增
46 DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; //外设数据宽度为16位
47 DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord; //内存数据宽度为16位
48 DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; //循环缓存模式
49 DMA_InitStructure.DMA_Priority = DMA_Priority_High; //高优先级
50 DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; //没有设置内存到内存的传输
51 DMA_Init(DMA1_Channel1, &DMA_InitStructure);
52 DMA_ITConfig(DMA1_Channel1, DMA_IT_TC, ENABLE);
53 DMA_Cmd(DMA1_Channel1,ENABLE); //开启DMA1通道传输
54 }
STM32F1库函数初始化系列:DMA—ADC采集的更多相关文章
- ADC-单通道DMA到多通道DMA ADC采集修改事项
1. 使能通道IO,因为从单通道到多通道,需要添加规则转换通道数,故需要使能扫描模式,否则只能扫描第一个通道: 2. DMA模式配置需修改为循环传输模式,否则只转换一次: 3. 开启ADC规则转换通道 ...
- STM32之DMA+ADC
借用小甲鱼的经典:各位互联网的广大网友们.大家早上中午晚上好..(打下小广告,因为小甲鱼的视频真的很不错).每次看小甲鱼的视频自学都是比较轻松愉快的..我在想,如果小甲鱼出STM32的视频,我会一集不 ...
- TMS320VC5509片内ADC采集
1. ADC采集比较简单,内部的10位的ADC,AIN0-AIN3的输入,主要是用的CSL的库函数#include <csl_adc.h> ; Uint16 samplestoraage[ ...
- 关于esp32的ADC采集
对于ADC采集 程序源码如下: /* ADC1 Example This example code is in the Public Domain (or CC0 licensed, at your ...
- 关于ADC采集
对于ADC采集,想问的一些问题 1.如何初始化? 需要初始化 2.哪里可以看到是多少位采集? 3.8位ADC采集的误差是多少? 4.基准电压从哪里取?
- CC2530的ADC采集外部电压
初窥ZIGBEE 要在zigbee的组网中加入烟雾传感器的模块,所以需要用到cc2530的ADC对传感器输出的模拟信号进行采样.下面是自己对实现用CC2530的ADC采集外部电压的程序过程. 以下是A ...
- ADC采集电流相关知识
1.AD电流采样电路,是把电路中的电流用采样元件转换为电压信号,然后用ADC量化转换为相应的数字信号.需要你在被采集端串联一个采样电阻,然后采集采样电阻两端的电压,这样就可以把电流输出变换为电压输出. ...
- STM32L15x——ADC采集DMA数据只第一次正确(已解决)
前提:我用的芯片是STM32L系列,可能对其它STM32系列不完全适用,仅供参考! 一.问题描述 我在使用DMA方式读取单ADC单通道采集的数据时,发现只能正确的采集一次数据,后来的就一直与第一次的相 ...
- STM32F405的内部ADC采集
1. ADC的初始化部分基本一致,下面是引脚复用配置 void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc) { GPIO_InitTypeDef GPIO_Ini ...
- STM32F103VET6 ADC采集64点做FFT变换
http://www.stmcu.org/module/forum/thread-598459-1-11.html http://bbs.21ic.com/icview-589756-1-1.html ...
随机推荐
- vue 中使用 this 更新数据的一次大坑
情景说明: 之前用 vue 做数据绑定更新时,发现一个莫名奇妙的问题. 我在 vue 实例中声明了一个数组属性如 books: [],在异步请求的回调函数中使用 this.books = res.da ...
- 学习ASP.NET Core Blazor编程系列十四——修改
学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...
- Linux deb系统 nginx 配置解析php
如果你是root用户可以不加sudo 首先安装php php-fpm nginx sudo apt-get install php php-fpm nginx -y nginx 是一个轻量级的http ...
- K8s安装乐维5.0应用部署文档
乐维产品包具体打包为4个镜像包,分别为:mysql5.7.36.tar.zabbix_server.tar.itops_v1_4_x86_64.tar.bpm0.1.tar,对应的配置文件分别为:da ...
- 【SQL必知必会】SQL知识查缺补漏
一.使用函数处理数据 1.字符串处理函数-顾客登录名[sql22] 思路1:substring(word,1,n).upper.concat SELECT cust_id, cust_name, UP ...
- 如何理性看待国内大热的HuTool工具包
一.序言 关于HuTool工具包,相信很多技术朋友都听说甚至使用过.在HuTool之前,已经有比较成熟的工具包比如Apache Common包,谷歌推出的Guava包,他们已经在全世界大范围使用了. ...
- Kubernetes(k8s)存储管理之数据卷volumes(二):hostPath数据卷
目录 一.系统环境 二.前言 三.hostPath数据卷 3.1 hostPath数据卷概览 3.2 创建有hostPath卷的pod 一.系统环境 服务器版本 docker软件版本 Kubernet ...
- MongoDB - 数据模型的设计模式
简介 官方文章的地址是 Building with Patterns: A Summary,其中汇总了 12 种设计模式及使用场景. 上述的图表列举了 12 种设计模式及应用场景,主要是以下这些: 近 ...
- loadrunner11安装时提示缺少Microsoft Visual c++2005 sp1组件的解决办法
解决方法: 1.进入loadrunner-11安装程序\loadrunner-11\Additional Components\IDE Add-Ins\MS Visual Studio .NET文件夹 ...
- CTFshow——funnyrsa2
题目如下: 题目分析: 发现n很小,可以考虑yafu分解n,或者使用在线网站,例如:http://factordb.com/.即得p,q,r.因为常规rsa只有p和q,则phi = (p -1) * ...