打印
[STM32F1]

有没有人用STM32CUBE生成过ADC的DMA方式

[复制链接]
5586|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
feiante|  楼主 | 2015-2-5 17:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有没有人用STM32CUBE生成过DMA方式的ADC?我在使用F1和F4时,使用2个通道,都是只能第一个通道可以用。下面是DMA部分的配置:
void MX_ADC1_Init(void)
{
  ADC_ChannelConfTypeDef sConfig;

    /**Common config
    */
  hadc1.Instance = ADC1;
  hadc1.Init.ScanConvMode = ENABLE;
  hadc1.Init.ContinuousConvMode = ENABLE;
  hadc1.Init.DiscontinuousConvMode = DISABLE;
  hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
  hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
  hadc1.Init.NbrOfConversion = 2;
  HAL_ADC_Init(&hadc1);

    /**Configure Regular Channel
    */
  sConfig.Channel = ADC_CHANNEL_14;
  sConfig.Rank = 1;
  sConfig.SamplingTime = ADC_SAMPLETIME_1CYCLE_5;
  HAL_ADC_ConfigChannel(&hadc1, &sConfig);

    /**Configure Regular Channel
    */
  sConfig.Channel = ADC_CHANNEL_15;
  sConfig.Rank = 2;
  HAL_ADC_ConfigChannel(&hadc1, &sConfig);

}

采用PC4和PC5,主程序中  HAL_ADC_Start_DMA(&hadc1,ADC_ConvertedValue,2);
ADC_ConvertedValue【0】和ADC_ConvertedValue【1】都是PC4的采样值。如果把sConfig.Rank交换,那么就都是PC5的值,应该怎么配置呢
沙发
guohuimao| | 2017-6-13 16:01 | 只看该作者
我也是刚入门stm32, 这个问题,好象是缓冲区内数据是交叉存放的,你只有两个,所以每次都固定通道数据了:
  即  PC4->[0], PC5->[1]...PC4->[0], PC5->[1]...

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

510

帖子

1

粉丝