野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10133|回复: 3

ADC DMA连续采集 问题请教

[复制链接]
发表于 2018-3-25 10:27:09 | 显示全部楼层 |阅读模式
本帖最后由 hezheng 于 2018-3-25 10:31 编辑

用STM32CUBE 生成的,用的指南者,PC1,和内部温度采集成程序。


ADC配置:使能扫描转换模式(Scan Conversion Mode),
                   使能连续转换模式(Continuous Conversion Mode),使能DMA连续请求。ADC规则组选择转换通道数为2(Number Of Conversion)。其他为默认设置。


看了初始化 也是使能了的
hadc1.Init.ContinuousConvMode = ENABLE;


/* ADC1 init function */
void MX_ADC1_Init(void)
{
  ADC_ChannelConfTypeDef sConfig;


    /**Common config
    */
  hadc1.Instance = ADC1;
  hadc1.Init.ScanConvMode = ADC_SCAN_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;
  if (HAL_ADC_Init(&hadc1) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }


    /**Configure Regular Channel
    */
  sConfig.Channel = ADC_CHANNEL_11;
  sConfig.Rank = ADC_REGULAR_RANK_1;
  sConfig.SamplingTime = ADC_SAMPLETIME_239CYCLES_5;
  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }


    /**Configure Regular Channel
    */
  sConfig.Channel = ADC_CHANNEL_TEMPSENSOR;
  sConfig.Rank = ADC_REGULAR_RANK_2;
  if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }


}

程序读电位器电压值,调也不会变,不是说连续转换模式是打开的,就是DMA会一直会刷新缓冲区数吗?
一直读都一固定值。

void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
{HAL_ADC_Start_DMA(&hadc1, (uint32_t*)&ADC_Value, 2);

在回调里加上重新启动,就可以了,有点疑惑,怎么一开始不会自动刷新数据,要手动启动。

回复

使用道具 举报

发表于 2018-3-26 08:52:02 | 显示全部楼层
应该是要调用个函数触发
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-27 08:23:24 | 显示全部楼层
随风 发表于 2018-3-26 08:52
应该是要调用个函数触发

可能是我理解错了,DMA中断完了,要重新再取才刷新DMA的数据,

ADC自动刷的是采集寄存器的数据,如果不取出来是DMA的数据是不变的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-27 08:23:48 | 显示全部楼层
随风 发表于 2018-3-26 08:52
应该是要调用个函数触发

可能是我理解错了,DMA中断完了,要重新再取才刷新DMA的数据,
ADC自动刷的是采集寄存器的数据,如果不取出来是DMA的数据是不变的。
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-19 14:28 , Processed in 0.032604 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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