STM32----ADC+DMA+双通道

#include "dma.h"
#include "stdio.h"

#if (ADC_DMA_USE_BUFF==1)
uint16_t ADC_DMA_Buff[10]; //用来作为DMA的目标地址   待采集通道的整数倍
#elif (ADC_DMA_USE_BUFF==0)
uint16_t ADC_DMA_Date=0;
#endif

/*
DMA  直接内存访问(Direct Memory Access)
DMA是的独立的功能,分为DMA1和DMA2
DMA可以和ADC  UART  SPI  IIC等外设一块使用
我们采样:  ADC+DMA的使用
配置ADC:
	结构体:GPIO   ADC
	实现光照:PA5   ADC12_IN5  -- 硬件原理图决定
	实现烟雾:PC1   ADC123_IN11
配置DMA:
	结构体:DMA
使用ADC1采集,ADC1的通道在DMA1上,所以DMA1和ADC1一块使用 -- 参考手册 中文表59决定

源地址:  ADC_DR          ADC外设里面的寄存器
目标地址:ADC_DMA_Buff    内存的地址里面
*/
void ADC_DMA_Config(void)
{
	//1.开GPIOA时钟 
//void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);  stm3210x_rcc.h 693行
//void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState);	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC,ENABLE); 

	//2.定义结构体
//void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);	  stm32f10x_gpio.h 351行
	GPIO_InitTypeDef GPIO_InitStruct={0};
	
	//3.给结构体赋值
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AIN;//工作模式  模拟输入  (1)看官方例程  (2)参考手册8.1.11
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_5;  //引脚
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;  //工作速度
	
	//4.调用XXX_init函数,将参数写入到寄存器中
	GP
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

膽小

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

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

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

打赏作者

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

抵扣说明:

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

余额充值