ADC配置问题

问题重申:板子中用到7路AD,分别是PA0,PA1,PA2,PA3,PA4,PA6,PA7分别采集VREF+3V VREF/2    V-3I0    VIx        V-IC    V-IB    V-IA信号,

设计思路:采用STM32F103VET6,有三个ADC模块,其中ADC1和ADC3能用DMA模式传输,ADC1只能用DMA1的1通道,ADC3只能用DMA2的5通道,(详细规定看芯片手册)

将ADC1和ADC2启动双AD模式,组成32位的data用DMA1传输,加快数据传输效率,具体代码如下:

__IO u32 ADC1_ConvertedValue[3];
__IO u16 ADC2_ConvertedValue;
__IO u16 ADC3_ConvertedValue;

//ADC_DR数据寄存器保存了ADC转换后的数值,以它作为DMA的传输源地址,
//由ADC1(ADC2)外设基地址0x40012400(0x40012800)加上ADC数据寄存器地址偏移0x4c得到
#define ADC1_DR_Address ((u32)0x40012400+0x4c)
#define ADC3_DR_Address ((u32)0x40013C00+0x4c)// ADC转换的电压值通过MDA方式传到SRAM

/*
* 函数名:ADC_Config
* 描述 :ADC初始化,DMA模式
* PA0 PA1 PA2 PA3 PA4 PA6 PA7
* | | | | | | |
*VREF+3V VREF/2 V-3I0 VIx V-IC V-IB V-IA
* | | | | | | |
*AD12IN0 AD12IN1 AD12IN2 AD12IN3 AD12IN4 AD12IN6 AD12IN7
* 输入 :无
* 输出 : 无
* 返回值:无
* 调用 :HalInit调用
* 其他 :PA0/PA1/PA2/PA3可设置为ADC123_IN0/IN1/IN2/IN3, PA4/PA5/PA6/PA7可设置为ADC12_IN4/IN5/IN6/IN7,
* 移植说明:复制此函数,包含*adc.h和*dma.h头文件,外部定义有1、__IO uint16_t ADC_ConvertedValue; 2、__IO uint16_t ADC_ConvertedValue;
*/
void ADC_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
DMA_InitTypeDef DMA_InitStructure;
ADC_InitTypeDef ADC_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;

/* Configure and enable ADC interrupt */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStructure.NVIC_IRQChannel = AD

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值