OpenEdv-开源电子网

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

求助STM32L475 ADC+DMA 配置问题,采集值一直为0.

[复制链接]

1

主题

1

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2020-1-2
在线时间
6 小时
发表于 2020-4-27 20:45:37 | 显示全部楼层 |阅读模式
adc配置:
void MY_ADC_Init(void)
{
            ADC_ChannelConfTypeDef ADC1_ChanConf;
       
    ADC1_Handler.Instance = ADC1;
    ADC1_Handler.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2; //2·ÖÆ죬ADCCLK=SYSCLK/2=80/2=40MHZ       
    ADC1_Handler.Init.Resolution = ADC_RESOLUTION_12B;           //12λÄ£ê½
    ADC1_Handler.Init.DataAlign = ADC_DATAALIGN_RIGHT;           //óò¶ÔÆë
    ADC1_Handler.Init.ScanConvMode = ADC_SCAN_ENABLE;                    //·Çé¨ÃèÄ£ê½
    ADC1_Handler.Init.EOCSelection = DISABLE;                    //1رÕEOCÖD¶Ï
          
          ADC1_Handler.Init.ContinuousConvMode = ENABLE;              //1رÕá¬Dø×a»»
    ADC1_Handler.Init.DiscontinuousConvMode = DISABLE;           //½ûÖ12»á¬Dø2éÑùÄ£ê½
    ADC1_Handler.Init.NbrOfConversion = 2;                       //1¸ö×a»»Ôú1æÔòDòáDÖD ò2¾íêÇÖ»×a»»1æÔòDòáD1

          ADC1_Handler.Init.NbrOfDiscConversion = 0;                   //2»á¬Dø2éÑùí¨μàêyÎa0
    ADC1_Handler.Init.ExternalTrigConv = ADC_SOFTWARE_START;     //èí¼t′¥·¢
    ADC1_Handler.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; //ê1óÃèí¼t′¥·¢

    ADC1_Handler.Init.LowPowerAutoWait = DISABLE;
    ADC1_Handler.Init.DMAContinuousRequests = ENABLE;
    ADC1_Handler.Init.Overrun = ADC_OVR_DATA_PRESERVED;
    ADC1_Handler.Init.OversamplingMode = DISABLE;
               
                ADC1_ChanConf.Channel = ADC_CHANNEL_1;   //ch                              //í¨μà
    ADC1_ChanConf.Rank = ADC_REGULAR_RANK_1;                                        //μú1¸öDòáD£¬DòáD1
    ADC1_ChanConf.SamplingTime = ADC_SAMPLETIME_47CYCLES_5;    //2éÑùê±¼ä
    ADC1_ChanConf.SingleDiff = ADC_SINGLE_ENDED;                                //ADC쥶Ëêäèë
    ADC1_ChanConf.OffsetNumber = ADC_OFFSET_NONE;                                //Æ«òÆoÅÑ¡Ôñ
    ADC1_ChanConf.Offset = 0;
    HAL_ADC_ConfigChannel(&ADC1_Handler, &ADC1_ChanConf);       //í¨μàÅäÖÃ

    ADC1_ChanConf.Channel = ADC_CHANNEL_2;   //ch                              //í¨μà
    ADC1_ChanConf.Rank = ADC_REGULAR_RANK_2;                                        //μú1¸öDòáD£¬DòáD1
    ADC1_ChanConf.SamplingTime = ADC_SAMPLETIME_47CYCLES_5;    //2éÑùê±¼ä
    ADC1_ChanConf.SingleDiff = ADC_SINGLE_ENDED;                                //ADC쥶Ëêäèë
    ADC1_ChanConf.OffsetNumber = ADC_OFFSET_NONE;                                //Æ«òÆoÅÑ¡Ôñ
    ADC1_ChanConf.Offset = 0;
       
    ADC1_Handler.Init.DMAContinuousRequests = ENABLE;           //′ò¿aDMAÇëÇó
    HAL_ADC_Init(&ADC1_Handler);                                 //3õê¼»ˉ
                HAL_ADC_Start(&ADC1_Handler);      
}

DMA配置
void MYDMA_Config(DMA_Channel_TypeDef *DMA_Channel, u32 seq)//
{               
          __HAL_RCC_DMA1_CLK_ENABLE();//DMA1ê±Öóê1Äü

    //ADC1 DMAÅäÖÃ
//         
    ADC1DMA_Handler.Instance = DMA1_Channel1;                          //í¨μàÑ¡Ôñ
    ADC1DMA_Handler.Init.Request = seq;                              //ÇëÇóÑ¡Ôñ
    ADC1DMA_Handler.Init.Direction = DMA_PERIPH_TO_MEMORY;           //íaéèμ½′æ′¢Æ÷
    ADC1DMA_Handler.Init.PeriphInc = DMA_PINC_DISABLE;               //íaéè·ÇÔöá¿Ä£ê½
    ADC1DMA_Handler.Init.MemInc = DMA_MINC_ENABLE;                   //′æ′¢Æ÷Ôöá¿Ä£ê½
    ADC1DMA_Handler.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD;  //íaéèêy¾Y3¤¶è:32λ
    ADC1DMA_Handler.Init.MemDataAlignment = DMA_MDATAALIGN_WORD;     //′æ′¢Æ÷êy¾Y3¤¶è:32λ
    ADC1DMA_Handler.Init.Mode = DMA_CIRCULAR;                          //íaéèÑ-»·Ä£ê½
    ADC1DMA_Handler.Init.Priority = DMA_PRIORITY_HIGH;  //                   //¸ßóÅÏ輶
         
   HAL_DMA_Init(&ADC1DMA_Handler);
  HAL_DMA_DeInit(&ADC1DMA_Handler);
  __HAL_LINKDMA(&ADC1_Handler, DMA_Handle, ADC1DMA_Handler);  //½«DMAóëADC1áaÏμÆeà′(·¢ËíDMA)

}

main中调用
HAL_ADC_Start_DMA(&ADC1_Handler, (uint32_t*)&AD_DMA, 2);
但AD_DMA中的数为0,不知道哪里出问题了,求大神帮忙看下
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2020-8-5
在线时间
30 小时
发表于 2021-5-12 15:03:11 | 显示全部楼层
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
151
金钱
151
注册时间
2021-5-12
在线时间
51 小时
发表于 2021-5-20 21:19:15 | 显示全部楼层
楼主解决了不
回复 支持 反对

使用道具 举报

3

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
150
金钱
150
注册时间
2020-8-30
在线时间
12 小时
发表于 2021-5-25 14:24:01 | 显示全部楼层
解决了不
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 20:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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