资源简介
调用了复位校准函数ADC_ResetCalibration()以及开始校准函数ADC_StartCalibration(),必须检查标志位等待校准完成,确保完成后才开始ADC转换.(建议是每次上电后都校准一次咯)
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
配置ADC1的模式为软件触发方式.
调用这个函数之后,ADC就开始进行转换了,每次转换完成后,由DMA控制器把转换从ADC数据寄存器(ADC_DR)中转移到变量ADC_ConvertedValue中,当DMA传输完成后,在main函数中使用 ADC_ConvertedValue的内容就是ADC的转换值了.
计算电压值:
在main函数中,ADC_ConvertedValueLoca是一个float类型变量,它保存了有转换值计算出来的电压值,计算的公式是ADC通用的
实际电压 = ADC转换值*LSB
LSB为Vref+接的参考电压/ADC的精度( LSB =3.3/2的12次方)
PS:
这里面ADC_ConvertedValue是用volatile修饰的,用 volatile 声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。因为 ADC_ConvertedValue 这个变量值随时都是会被 DMA 控制器改变的,所以用 volatile 来修饰它,确保每次读取到的都是实时的 ADC 转
代码片段和文件信息
#include “stm32f4xx.h“
#include
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
GPIO_Init(GPIOC &GPIO_InitStructure);
}
#define ADC_CDR_ADDRESS ((uint32_t)0x40012308) //ADC_DCR寄存器基地址
u32 ADCTripleConvertedValue[515]; //很奢侈的分配4K作为ADC采样1024的数据存放位置
void DMA_Configuration(void)
{
DMA_InitTypeDef DMA_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2 ENABLE);
DMA_InitStructure.DMA_Channel = DMA_Channel_0; //通道设置
DMA_InitStructure.DMA_PeripheralbaseAddr = (uint32_t)ADC_CDR_ADDRESS; //外设基地址
DMA_InitStructure.DMA_Memory0baseAddr = (uint32_t)&ADCTripleConvertedValue; //内存基地址
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory; //外设到内存的传输
DMA_InitStructure.DMA_BufferSize = 515; //传输次数 1
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; //外设地址增加失能
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; //内存地址增加失能
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word; //DMA外设半字节传输
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word; //DMA内存半字节传输
DMA_InitStructure.DMA_Mode = DMA_Mode_Normal; //DMA工作于循环模式
DMA_InitStructure.DMA_Priority = DMA_Priority_High; //高优先级运行
DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable; //失能FIFO模式
DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull; //fifo阈值半字节
DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; //内存单次突发传输
DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; //外设单次突发传输
DMA_Init(DMA2_Stream0 &DMA_InitStructure);
DMA_ITConfig(DMA2_Stream0DMA_IT_TCENABLE);
DMA_Cmd(DMA2_Stream0 ENABLE);
}
void NVIC_Configuration(FunctionalState NewState)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel = DMA2_Stream0_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = NewState;
NVIC_Init(&NVIC_InitStructure);
}
void ADC_Configuration(void)
{
ADC_InitTypeDef ADC_InitStructure;
ADC_CommonInitTypeDef ADC_CommonInitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1|RCC_APB2Periph_ADC2|RCC_APB2Periph_ADC3 ENABLE);
ADC_CommonInitStructure.ADC_Mode = ADC_TripleMode_Interl;
ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;
ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_2; //DMA传输模式1
ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div2; //ADC时钟为APB2/2
ADC_CommonInit(&ADC_CommonInitStructure);
ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
ADC_InitStructure.ADC_ScanConvMode
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-10-24 23:02 STM32F4 AD采集DMA方式进行FFT计算\
文件 81179 2018-10-24 23:01 STM32F4 AD采集DMA方式进行FFT计算\BlankPrj.uvgui.Administrator
文件 343738 2012-07-10 09:34 STM32F4 AD采集DMA方式进行FFT计算\BlankPrj.uvgui.laoyl
文件 342429 2012-07-09 14:10 STM32F4 AD采集DMA方式进行FFT计算\BlankPrj.uvgui_laoyl.bak
文件 26630 2018-10-24 23:01 STM32F4 AD采集DMA方式进行FFT计算\BlankPrj.uvopt
文件 23417 2018-10-24 23:01 STM32F4 AD采集DMA方式进行FFT计算\BlankPrj.uvproj
文件 21273 2018-10-24 22:56 STM32F4 AD采集DMA方式进行FFT计算\BlankPrj_Stm32F4Proj.dep
文件 33420 2012-07-10 09:34 STM32F4 AD采集DMA方式进行FFT计算\BlankPrj_uvopt.bak
文件 22611 2012-07-05 00:22 STM32F4 AD采集DMA方式进行FFT计算\BlankPrj_uvproj.bak
目录 0 2018-10-24 22:56 STM32F4 AD采集DMA方式进行FFT计算\Debug\
文件 9604 2018-10-24 23:01 STM32F4 AD采集DMA方式进行FFT计算\Debug\BlankPrj.build_log.htm
文件 280 2012-07-10 09:34 STM32F4 AD采集DMA方式进行FFT计算\Debug\BlankPrj.plg
文件 479 2011-10-20 15:08 STM32F4 AD采集DMA方式进行FFT计算\Debug\BlankPrj.sct
文件 4086 2012-07-09 13:18 STM32F4 AD采集DMA方式进行FFT计算\Debug\BlankPrj.tra
文件 19 2012-07-09 14:10 STM32F4 AD采集DMA方式进行FFT计算\Debug\ExtDll.iex
文件 35 2018-10-24 22:56 STM32F4 AD采集DMA方式进行FFT计算\Debug\common.d
文件 31 2018-10-24 22:56 STM32F4 AD采集DMA方式进行FFT计算\Debug\main.d
文件 112 2018-10-24 22:56 STM32F4 AD采集DMA方式进行FFT计算\Debug\misc.d
文件 57 2018-10-24 22:56 STM32F4 AD采集DMA方式进行FFT计算\Debug\startup_stm32f4xx.d
文件 7896 2018-10-24 22:56 STM32F4 AD采集DMA方式进行FFT计算\Debug\startup_stm32f4xx.o
文件 148 2018-10-24 22:56 STM32F4 AD采集DMA方式进行FFT计算\Debug\stm32f4xx_adc.d
文件 148 2018-10-24 22:56 STM32F4 AD采集DMA方式进行FFT计算\Debug\stm32f4xx_can.d
文件 148 2018-10-24 22:56 STM32F4 AD采集DMA方式进行FFT计算\Debug\stm32f4xx_crc.d
文件 152 2018-10-24 22:56 STM32F4 AD采集DMA方式进行FFT计算\Debug\stm32f4xx_cryp.d
文件 164 2018-10-24 22:56 STM32F4 AD采集DMA方式进行FFT计算\Debug\stm32f4xx_cryp_aes.d
文件 164 2018-10-24 22:56 STM32F4 AD采集DMA方式进行FFT计算\Debug\stm32f4xx_cryp_des.d
文件 167 2018-10-24 22:56 STM32F4 AD采集DMA方式进行FFT计算\Debug\stm32f4xx_cryp_tdes.d
文件 148 2018-10-24 22:56 STM32F4 AD采集DMA方式进行FFT计算\Debug\stm32f4xx_dac.d
文件 160 2018-10-24 22:56 STM32F4 AD采集DMA方式进行FFT计算\Debug\stm32f4xx_dbgmcu.d
文件 152 2018-10-24 22:56 STM32F4 AD采集DMA方式进行FFT计算\Debug\stm32f4xx_dcmi.d
文件 148 2018-10-24 22:56 STM32F4 AD采集DMA方式进行FFT计算\Debug\stm32f4xx_dma.d
............此处省略108个文件信息
相关资源
- beyongAdmin完整版花钱买的.rar
- 移动Ad Hoc网络
- gradle1.6.rar
- 雷达手册中文第三版下
- DWGdirect.Net_and_ActiveX_3.3.0.rar
- [模拟CMOS集成电路设计].Design.Of.Analo
- Head First Design Patterns深入浅出设计模式
- OCAD11.0中文专业版已破解
- head first 软件开发.pdf
- dxf2xyz 导出cad坐标到excle表格
- 开目CAD3.8破解文件
- ADO.NET数据库应用开发.pdf
- VideoDownloadHelper 浏览器插件 破解版无
- Hadoop实战-陆嘉恒(高清完整版).pd
- AD元件库与封装库
- ComputedTomography:PrinciplesDesignArtifacts
- STM32F4开发指南-寄存器版本_V1.1
- MUCAD 数码提花系统 数码织唛 写花系
- stm32f407驱动ws2818全彩灯7灯
- Altium Designer集成库带3D封装
-
基于Hba
se的海量视频存储简单模拟 - J.D.Aderson 计算流体力学CFD入门中译本
- stm32f4硬件i2c读取ms5611
- 统计模型:理论和实践第2版
- CadLib4.0英文API帮助文档
- Advanced Mathematics
- UNIX and Linux System Administration Handbook(
- coolPad 5890 Nv 及备份恢复工具包含驱动
- TMS320F28027 例程
- ADS2015 安装教程及破解文件 亲测可用
评论
共有 条评论