零死角玩转STM32---单通道ADC分析

本文详细介绍了如何配置STM32的单通道ADC,包括ADC初始化、DMA配置以及GPIO设置,以便获取并处理ADC转换后的数据。在主函数中,通过DMA读取ADC转换值并进行电压转换,实现对模拟信号的实时监测。
摘要由CSDN通过智能技术生成
/*adc.h*/
#define ADC1_DR_Address    ((u32)0x4001244C)
void ADC_Configuration(void);

/*adc.c*/
#include "adc.h"         
vu16 ADC_ConvertedValue;     //此变量用来存放DMA读取到的ADC转换的结果,在main函数中 extern vu16 ADC_ConvertedValue; 即可使用转换好的结果


/*ADC配置,包括了DMA的配置,只需要在main函数中调用这个函数即可*/
void ADC_Configuration( void)
{
  ADC_InitTypeDef ADC_InitStructure;
  DMA_InitTypeDef DMA_InitStructure;
  GPIO_InitTypeDef GPIO_InitStructure;

  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);     //初始化外设(DMA)的时钟
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);  //初始化外设(ADC1,GPIOA)的时钟,因为使用的是GPIOA的第二功能,  所以还得把第二功能的时钟给启动了

  /* Configure PA.0x (ADC Channelx) as analog input -------------------------*/
 
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 ;  //将GPIOA的第5引脚设置为模拟输入(如果需要使用其他的引脚的话,只需要把5改成对应的引脚,并修改对应的ADC通道(下方有说明)即可)
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;    //设置为模拟输入
  GPIO_Init(GPIOA, &GPIO_InitStructure);     //调用初始化库函数,将上面的配置写入寄存器
   
  /* D
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值