OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6235|回复: 24

stm32f407 ADC+DMA失败,求分析

[复制链接]

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2014-5-27
在线时间
8 小时
发表于 2016-4-21 20:33:24 | 显示全部楼层 |阅读模式
20金钱
我用ADC和DMA完成数据采集,用ADC1_Channel5采集PA5的电压,连续采样模式,用DMA读取数据将ADC1->DR的值放在ADC_Value[50]中,传输数为50,我在主函数中读取数组求平均值并在显示屏中显示出来,但是发现数组中的数据不变,不管给PA5什么电压。我单次采样是成功的,求大家给分析分析
[mw_shl_code=applescript,true]
void  Adc_Init(void)
{   
        ADC_CommonInitTypeDef ADC_CommonInitStructure;
        ADC_InitTypeDef       ADC_InitStructure;
        DMA_InitTypeDef DMA_InitStructure;
        GPIO_InitTypeDef GPIO_InitStructure;
       
       
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE); //使能GPIOA
         //先初始化ADC1通道5 IO口
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;//PA5 通道5
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;//模拟输入
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;//不带上下拉
        GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);//使能ADC1时钟
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2,ENABLE);
       
        RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1,ENABLE);        //ADC1复位
        RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1,DISABLE);        //复位结束         

        ADC_TempSensorVrefintCmd(ENABLE);//使能内部温度传感器
       
        ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;//独立模式
        ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;
        ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_1; //DMA失能
        ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div4; //ADCCLK=PCLK2/4=84/4=21Mhz,ADC时钟最好不要超过36Mhz
        ADC_CommonInit(&ADC_CommonInitStructure);
       
        ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;//12位模式
        ADC_InitStructure.ADC_ScanConvMode = DISABLE;//非扫描模式       
        ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
        ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;//禁止触发检测,使用软件触发
        ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;//右对齐       
        ADC_InitStructure.ADC_NbrOfConversion = 1;//1个转换在规则序列中 也就是只转换规则序列1
        ADC_Init(ADC1, &ADC_InitStructure);
        ADC_DMACmd(ADC1,ENABLE);
       
        ADC_ContinuousModeCmd(ADC1, ENABLE);
    ADC_DMARequestAfterLastTransferCmd(ADC1, ENABLE);
        ADC_Cmd(ADC1, ENABLE);//开启AD转换器
       
        DMA_DeInit(DMA2_Stream0);
        DMA_InitStructure.DMA_Channel = DMA_Channel_0;  
        DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1->DR;
        DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)ADCConvertedValue;
        DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory;
        DMA_InitStructure.DMA_BufferSize = 50;
        DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
        DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
        DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
        DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
        DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
        DMA_InitStructure.DMA_Priority = DMA_Priority_High;
        DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable;         
        DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull;
        DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single;
        DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;
        DMA_Init(DMA2_Stream0, &DMA_InitStructure);
        DMA_Cmd(DMA2_Stream0, ENABLE);
       
          
        //ADC_RegularChannelConfig(ADC1, ADC_Channel_16, 1, ADC_SampleTime_480Cycles );        //ADC16,ADC通道,480个周期,提高采样时间可以提高精确度
        ADC_RegularChannelConfig(ADC1, ADC_Channel_5, 1, ADC_SampleTime_480Cycles );        //ADC1,ADC通道,480个周期,提高采样时间可以提高精确度                            
        ADC_SoftwareStartConv(ADC1);
       

}[/mw_shl_code]


实验19 内部温度传感器实验.zip

4.62 MB, 下载次数: 265

最佳答案

查看完整内容[请看2#楼]

#include "adc.h" #include "delay.h" #define CH_NUM 4 //要使用的ADC通道数 __IO uint16_t ad_value[CH_NUM]={0,0,0,0};// //#define ADC1_DR_Address ((uint32_t)0X4001204C) //外设基地址 //初始化ADC void ADC1_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; ADC_CommonInitTypeDef ADC_CommonInitStructure; ADC_InitTypeDef ADC_InitStructure; RCC_AHB ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

45

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
380
金钱
380
注册时间
2014-12-13
在线时间
89 小时
发表于 2016-4-21 20:33:25 | 显示全部楼层
#include "adc.h"
#include "delay.h"


#define CH_NUM  4    //要使用的ADC通道数

__IO uint16_t ad_value[CH_NUM]={0,0,0,0};//
//#define ADC1_DR_Address  ((uint32_t)0X4001204C) //外设基地址

//初始化ADC                                                                                                                          
void  ADC1_Init(void)
{   
        GPIO_InitTypeDef  GPIO_InitStructure;
        ADC_CommonInitTypeDef ADC_CommonInitStructure;
        ADC_InitTypeDef       ADC_InitStructure;

        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//使能GPIOA时钟
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); //使能ADC1时钟

        //先初始化ADC1通道端口
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;//模拟输入
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;//不带上下拉
        GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化  

//        RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1,ENABLE);          //ADC1复位
//        RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1,DISABLE);        //复位结束         
       
        ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;//独立模式
        ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;//两个采样阶段之间的延迟5个时钟
        ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_1; //DMA模式1
        ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div6;//预分频6分频。ADCCLK=PCLK2/6=84/6=14Mhz,ADC时钟最好不要超过36Mhz
        ADC_CommonInit(&ADC_CommonInitStructure);//初始化

        ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;//12位模式
        ADC_InitStructure.ADC_ScanConvMode = ENABLE;//扫描模式       
        ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;//连续转换
        ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;//禁止触发检测,使用软件触发
        ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;//右对齐       
        ADC_InitStructure.ADC_NbrOfConversion = CH_NUM;//1个转换在规则序列中 也就是只转换规则序列1
        ADC_Init(ADC1, &ADC_InitStructure);//ADC初始化
       
        //设置指定的ADC通道组,设置转化顺序及采样时间
    ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_480Cycles);
    ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 2, ADC_SampleTime_480Cycles);
    ADC_RegularChannelConfig(ADC1, ADC_Channel_2, 3, ADC_SampleTime_480Cycles);
        ADC_RegularChannelConfig(ADC1, ADC_Channel_3, 4, ADC_SampleTime_480Cycles);
   
        ADC_DMARequestAfterLastTransferCmd(ADC1, ENABLE);  //if not have this function , can't get new value
    //开启ADC的DMA
    ADC_DMACmd(ADC1,ENABLE);
        //使能ADC
        ADC_Cmd(ADC1, ENABLE);
}
回复

使用道具 举报

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2014-5-27
在线时间
8 小时
 楼主| 发表于 2016-4-21 20:33:42 | 显示全部楼层
不要沉,自己先顶上来
回复

使用道具 举报

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2014-5-27
在线时间
8 小时
 楼主| 发表于 2016-4-21 21:59:30 | 显示全部楼层
加把劲,再来一次
回复

使用道具 举报

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2014-5-27
在线时间
8 小时
 楼主| 发表于 2016-4-21 22:00:57 | 显示全部楼层
如果我不用DMA直接用连续采样,程序是成功的,下面这个是我的DMA配置请问哪里有错呢,我对比了网上很多的配置都和我这个差不多,实在找不到错的地方
[mw_shl_code=applescript,true]DMA_DeInit(DMA2_Stream0);
        DMA_InitStructure.DMA_Channel = DMA_Channel_0;  
        DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1->DR;
        DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)&ADC_Value;
        DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory;
        DMA_InitStructure.DMA_BufferSize = 1;
        DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
        DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
        DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
        DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
        DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
        DMA_InitStructure.DMA_Priority = DMA_Priority_High;
        DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable;         
        DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull;
        DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single;
        DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;
        DMA_Init(DMA2_Stream0, &DMA_InitStructure);
        DMA_Cmd(DMA2_Stream0, ENABLE);[/mw_shl_code]
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2016-4-22 09:31:03 | 显示全部楼层
ST有相关例程的,好好看看对比一下
回复

使用道具 举报

58

主题

499

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1920
金钱
1920
注册时间
2013-11-18
在线时间
268 小时
发表于 2016-4-22 12:35:22 | 显示全部楼层
感觉你是思路上有问题,要用定时器触发ADC来控制采样频率。你用ADC连接采样,采50个值非常快就采完了,等不到你电压的变化
回复

使用道具 举报

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2014-5-27
在线时间
8 小时
 楼主| 发表于 2016-4-22 20:27:23 | 显示全部楼层
mzwhhwj 发表于 2016-4-22 12:35
感觉你是思路上有问题,要用定时器触发ADC来控制采样频率。你用ADC连接采样,采50个值非常快就采完了,等不 ...

我的目的是,ADC在后台不停的采样通过DMA传输到数组中,当我需要用到这个数据时,直接去读数组中的值,这样就不要进行采样可以节约很多时间,但是结果是DMA传输有问题,ADC连续采样没有问题这个我验证过,我就想知道我的DMA错在哪里
回复

使用道具 举报

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2014-5-27
在线时间
8 小时
 楼主| 发表于 2016-4-22 20:28:15 | 显示全部楼层
八度空间 发表于 2016-4-22 09:31
ST有相关例程的,好好看看对比一下

我对比了正点原子的DMA还有网上很多博客的,相关设计都差不多,但是我的dma 就是不能正常工作,ADC能正常工作
回复

使用道具 举报

0

主题

45

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
380
金钱
380
注册时间
2014-12-13
在线时间
89 小时
发表于 2016-4-23 09:51:18 来自手机 | 显示全部楼层
ADC_InitStructure.ADC_NbrOfConversion = 1;//1个转换在规则序列中 也就是只转换规则序列1,此处改成2试下
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2016-4-24 00:52:46 | 显示全部楼层
小二黑 发表于 2016-4-22 20:28
我对比了正点原子的DMA还有网上很多博客的,相关设计都差不多,但是我的dma 就是不能正常工作,ADC能正常 ...

通道对没?源地址对没?
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2014-5-27
在线时间
8 小时
 楼主| 发表于 2016-4-24 14:51:13 | 显示全部楼层
八度空间 发表于 2016-4-24 00:52
通道对没?源地址对没?

对的,ADC1用的是DMA2stream0,源地址用的是ADC->DR
回复

使用道具 举报

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2014-5-27
在线时间
8 小时
 楼主| 发表于 2016-4-24 14:51:41 | 显示全部楼层
迷恋烟花的瞬间 发表于 2016-4-23 09:51
ADC_InitStructure.ADC_NbrOfConversion = 1;//1个转换在规则序列中 也就是只转换规则序列1,此处改成2试下

我只配置了1个通道,需要改成2?
回复

使用道具 举报

0

主题

45

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
380
金钱
380
注册时间
2014-12-13
在线时间
89 小时
发表于 2016-4-24 19:36:31 | 显示全部楼层
代码太多了,眼看的花,我已经调试好的4路ADC DMA方式,你自己对着看吧
回复

使用道具 举报

0

主题

45

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
380
金钱
380
注册时间
2014-12-13
在线时间
89 小时
发表于 2016-4-24 19:39:46 | 显示全部楼层
//DMA配置
void DMA_Config(void)
{
        DMA_InitTypeDef   DMA_InitStructure;
       
        RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_DMA2, ENABLE);//使能DMA时钟
       
//        DMA_InitStructure.DMA_Channel = DMA_Channel_0;  
    DMA_InitStructure.DMA_PeripheralBaseAddr =(u32)&(ADC1->DR); //DMA对应的外设基地址
    DMA_InitStructure.DMA_Memory0BaseAddr = (u32)&ad_value;    //DMA 内存基地址
    DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory;//外设到内存
    DMA_InitStructure.DMA_BufferSize =CH_NUM; //DMA缓存大小CH_NUM个
    DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;//接收到一次数据后,设备地址禁止后移
    DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//接收到一次数据后,目标地址后移
    DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;//定义外设数据宽度为16位
    DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;//DMA搬移尺寸,HalfWord就是为16位
    DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;//转换模式,循环缓存模式
    DMA_InitStructure.DMA_Priority = DMA_Priority_High;//DMA优先级高
    DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable;         
    DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_HalfFull;
    DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single;
    DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;
    DMA_Init(DMA2_Stream0, &DMA_InitStructure);

}
回复

使用道具 举报

0

主题

45

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
380
金钱
380
注册时间
2014-12-13
在线时间
89 小时
发表于 2016-4-24 19:40:17 | 显示全部楼层
void adc_start(void)
{
    /* Start ADC1 Software Conversion */
    ADC_SoftwareStartConv(ADC1);  //连续转换开始,ADC通过DMA方式不断更新RAM区
    DMA_Cmd(DMA2_Stream0, ENABLE);   
}
/** @para none
  * @ret  none
  * @brief 完成ADC配置
  */
void Adc_Config(void)
{
        ADC1_Init();//
        DMA_Config();//
        adc_start();
}
/****************************************************************************
* 名    称: u16 Get_Adc(u8 ADC_Channel)
* 功    能:获得指定通道ADC值
* 入口参数:ch: 通道值 0~16取值范围为:ADC_Channel_0~ADC_Channel_16
* 返回参数:12位ADC有效值
* 说    明:      
****************************************************************************/
u16 Get_Adc(u8 ADC_Channel)
{
    u16 ret = 0;
    switch(ADC_Channel)
    {
        case ADC_Channel_0:ret = ad_value[0];break;
        case ADC_Channel_1:ret = ad_value[1];break;
        case ADC_Channel_2:ret = ad_value[2];break;
                case ADC_Channel_3:ret = ad_value[3];break;
               
    }
    return ret;
}
/****************************************************************************
* 名    称: u16 Get_Adc_Average(u8 ch,u8 times)
* 功    能:获取通道ch的转换值,取times次,然后平均
* 入口参数:ch: 通道值 0~16取值范围为:ADC_Channel_0~ADC_Channel_16
*           times:获取次数
* 返回参数:通道ch的times次转换结果平均值
* 说    明:      
****************************************************************************/
u16 Get_Adc_Average(u8 ch,u8 times)
{
        u32 temp_val=0;
        u8 t;
        for(t=0;t<times;t++)
        {
                temp_val+=Get_Adc(ch);
                delay_ms(5);
        }
        return temp_val/times;
}
回复

使用道具 举报

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2014-5-27
在线时间
8 小时
 楼主| 发表于 2016-4-25 15:20:38 | 显示全部楼层
迷恋烟花的瞬间 发表于 2016-4-24 19:40
void adc_start(void)
{
    /* Start ADC1 Software Conversion */

好的,我试一试
回复

使用道具 举报

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2014-5-27
在线时间
8 小时
 楼主| 发表于 2016-4-25 15:23:50 | 显示全部楼层
迷恋烟花的瞬间 发表于 2016-4-24 19:40
void adc_start(void)
{
    /* Start ADC1 Software Conversion */

CH_NUM可以改为4的任何倍数吗?还是只能是4?
回复

使用道具 举报

0

主题

45

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
380
金钱
380
注册时间
2014-12-13
在线时间
89 小时
发表于 2016-4-25 22:11:40 来自手机 | 显示全部楼层
开几个通道改成几,注释很清楚了
回复

使用道具 举报

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2014-5-27
在线时间
8 小时
 楼主| 发表于 2016-4-26 20:28:04 | 显示全部楼层
小二黑 发表于 2016-4-21 21:59
加把劲,再来一次

谢谢你,我的问题已经找到了
回复

使用道具 举报

4

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2014-5-27
在线时间
8 小时
 楼主| 发表于 2016-4-26 20:28:38 | 显示全部楼层
小二黑 发表于 2016-4-25 15:23
CH_NUM可以改为4的任何倍数吗?还是只能是4?

谢谢你,我的问题找到了,是我自己初始化有问题。
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2016-5-11
在线时间
1 小时
发表于 2016-5-11 15:09:40 | 显示全部楼层
小二黑 发表于 2016-4-26 20:28
谢谢你,我的问题找到了,是我自己初始化有问题。

楼主初始化哪里出了问题,小弟现在也有同样的问题,求解答
回复

使用道具 举报

4

主题

12

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2016-4-9
在线时间
8 小时
发表于 2016-5-12 09:38:30 | 显示全部楼层
迷恋烟花的瞬间 发表于 2016-4-24 19:40
void adc_start(void)
{
    /* Start ADC1 Software Conversion */

大神我想请教一下我用ADC DMA进行三路数据采集,当单独每一路采集时数据正确,当我三路一起采集时,第一路数据正确,其他两路不正确。能给我指点一下吗谢谢。
回复

使用道具 举报

5

主题

65

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2014-8-16
在线时间
34 小时
发表于 2016-7-30 15:54:24 | 显示全部楼层
小二黑 发表于 2016-4-26 20:28
谢谢你,我的问题已经找到了

先配置DMA,在配置ADC
回复

使用道具 举报

5

主题

65

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2014-8-16
在线时间
34 小时
发表于 2016-7-30 15:54:41 | 显示全部楼层
icecheng 发表于 2016-5-11 15:09
楼主初始化哪里出了问题,小弟现在也有同样的问题,求解答

先配置DMA,在配置ADC
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 23:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表