STM32F103_ADC-DMA通道采集

本文介绍了如何在STM32F103上使用ADC结合DMA进行数据采集。首先,讲解了DMA和ADC的基本概念,然后详细阐述了单通道ADC采集过程,包括对应的.c和.h文件配置。接着,扩展到多通道采集,说明了如何同时采集多个IO口的ADC值并利用DMA传输到内存中。
摘要由CSDN通过智能技术生成

DMA简介
ADC简介

单通道采集
简介:ADC采集数据通过DMA通道发送到内存
.c文件

#include "adc.h"
uint16_t ADC_ConvertedValue;   //ADC通道1或通道3数据16位
void GPIO_Config(void)
{
   	
	RCC_APB2PeriphClockCmd(ADC_GPIO_RCC,  ENABLE);
    GPIO_InitTypeDef   GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Pin = ADC_GPIO_PIN ;
	GPIO_InitStruct.GPIO_Mode = ADC_GPIO_MODE ;
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_10MHz;
	GPIO_Init(ADC_GPIO_PORT , &GPIO_InitStruct);
}

void DMA_Config(void)
{
   

    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
	DMA_DeInit(DMA1_Channel_x);   
	DMA_InitTypeDef DMA_InitStructure; 
	DMA_InitStructure.DMA_PeripheralBaseAddr =  (uint32_t) (&(ADC_x->DR));   // DMA 外设基地址
	DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&ADC_ConvertedValue; ;             // 内存基地址
	DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; 	                    //外设作为数据的来源
	DMA_InitStructure.DMA_BufferSize = 1; 
	DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;         //外设地址不递增
	DMA_InitStructure.DMA_MemoryInc =DMA_MemoryInc_Disable ;            //内存地址也不变
	DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;  //数据宽度16位  ADC输出16位数据
	DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;  //数据宽度16位  ADC输出16位数据
	DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;             //工作在循环
	DMA_InitStructure.DMA_Priority = DMA_Priority_High;        //高优先级
	DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; 
	DMA_Init(DMA1_Channel_x, &DMA_InitStructure); 
	
	
	DMA_Cmd(DMA1_Channel_x,ENABLE);  //使能MAS6
	
	
}
void ADC_Config(void)
{
   
	GPIO_Config();
	DMA_Config();
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);
    ADC_DeInit(ADC_x);   //初始化
	ADC_InitTypeDef ADC_InitStructure; 
	ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;   //工作在独立模式
	ADC_InitStructure.ADC_ScanConvMode = DISABLE; 
	ADC_InitStructure.ADC_Contin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梨花落-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值