STM32采集多路ADC到DMA的方法

本文介绍了在STM32开发中如何实现多路ADC数据通过DMA进行采集。通过配置ADC和DMA,实现了从ADC1的通道0和通道1连续采样,并将数据存入内存,为游戏摇杆的电位器位置计算提供数据支持。
摘要由CSDN通过智能技术生成

最近在做一个手柄,用到了一个游戏摇杆,游戏摇杆的原理就是两个电位器,通过读取ADC的值计算位置,原理和触摸屏类似,那么就需要用到两路ADC了,但是我用的开发板是野火的,火哥给的例程只有单路ADC采集,查阅了相关资料解决了多路的问题,现在我把主要的代码贴在下面,以及一些注意的地方。

#define ADC1_DR_Address    ((u32)0x40012400+0x4c)

__IO uint16_t ADC_ConvertedValue[2];

/**
  * @brief  使能ADC1和DMA1的时钟,初始化PA.0&PA.1
  * @param  无
  * @retval 无
  */
static void ADC1_GPIO_Config(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	
	/* Enable DMA clock */
	RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
	
	/* Enable ADC1 and GPIOC clock */
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOA, ENABLE);
	
	/* Configure PA.0&PA.1  as analog input */
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
	GPIO_Init(GPIOA, &GPIO_InitStructure);				//输入时不用设置速率
}
/**
  * @brief  配置ADC1的工作模式为DMA模式
  * @param  无
  * @retval 无
  */
static vo
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值