请问要4通道都用DMA模式怎么使用

2019-07-14 17:24发布

我有4个AD要用到,想用DMA模式,看库函数例程只有一个通道,请问要4通道都用DMA模式怎么使用
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
TOPCB
1楼-- · 2019-07-14 20:32
连续采集,放入到DMA的缓冲区中,他是依次放入的。
jingyin58783
2楼-- · 2019-07-15 01:55
帮顶一下!
jiyuyin
3楼-- · 2019-07-15 04:40
AdcHandle.Instance = ADC1;
  
  AdcHandle.Init.OversamplingMode      = DISABLE;
  
  AdcHandle.Init.ClockPrescaler        = ADC_CLOCKPRESCALER_PCLK_DIV1;
  AdcHandle.Init.LowPowerAutoOff       = DISABLE;
  AdcHandle.Init.LowPowerFrequencyMode = ENABLE;
  AdcHandle.Init.LowPowerAutoWait      = ENABLE;
   
  AdcHandle.Init.Resolution            = ADC_RESOLUTION12b;
  AdcHandle.Init.SamplingTime          = ADC_SAMPLETIME_7CYCLES_5;
  AdcHandle.Init.ScanDirection         = ADC_SCAN_DIRECTION_UPWARD;
  AdcHandle.Init.DataAlign             = ADC_DATAALIGN_RIGHT;
  AdcHandle.Init.ContinuousConvMode    = ENABLE;
  AdcHandle.Init.DiscontinuousConvMode = DISABLE;
  AdcHandle.Init.ExternalTrigConvEdge  = ADC_EXTERNALTRIG_EDGE_NONE;
  AdcHandle.Init.EOCSelection          = EOC_SINGLE_CONV;
  AdcHandle.Init.DMAContinuousRequests = ENABLE;

HAL_ADC_Init(&AdcHandle);
HAL_ADCEx_Calibration_Start(&AdcHandle, ADC_SINGLE_ENDED) ;
sConfig.Channel = ADC_CHANNEL_0;   
HAL_ADC_ConfigChannel(&AdcHandle, &sConfig);
  HAL_ADC_Start_DMA(&AdcHandle, &aResultDMA, 1);


例程如上,我想再增加ADC_CHANNEL_1,ADC_CHANNEL_2;      
改如何设置呢
  
jiyuyin
4楼-- · 2019-07-15 10:12
 精彩回答 2  元偷偷看……
TOPCB
5楼-- · 2019-07-15 16:09
给你传个多通道的采集例程
youxi8745
6楼-- · 2019-07-15 17:09
还没用到那块,帮顶

一周热门 更多>