你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

用DMA传输ADC转换结果, 数据不正确

[复制链接]
cpev 提问时间:2018-3-15 09:39 /
阅读主题, 点击返回1楼
收藏 评论22 发布时间:2018-3-15 09:39
22个回答
dsjsjf 回答时间:2018-3-15 15:38:18
给你个程序参考

#define AdcChannelNum   1
#define AdcDmaLengh     (AdcFilterNum * AdcChannelNum)

uint32_t ADC_ConvertedValue[AdcFilterNum][AdcChannelNum];


/* ADC1 init function */
static void MX_ADC1_Init(void)
{

  ADC_ChannelConfTypeDef sConfig;

    /**Common config
    */
  hadc1.Instance = ADC1;
  hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE;
  hadc1.Init.ContinuousConvMode = ENABLE;
  hadc1.Init.DiscontinuousConvMode = DISABLE;
  hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
  hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
  hadc1.Init.NbrOfConversion = 1;
  if (HAL_ADC_Init(&hadc1) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }

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

}


void Start_AdConvert(void)
{
  HAL_ADCEx_Calibration_Start(&hadc1);
  HAL_Delay(100);
  HAL_ADC_Start_DMA(&hadc1, (ADC_ConvertedValue[0]), AdcDmaLengh);
}

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

小涂邦邦 回答时间:2018-9-5 23:39:54
我也遇到了同样的问题,就是DMA得到的结果只有低8位,没有高8位。例如,ADC采样的值位0x0A10,但DMA对应的内存变量值为0x0010。也就是高位传不过来。请问楼主是怎么解决的。
OHWIXP 回答时间:2018-9-24 16:00:44
本帖最后由 OHWIXP 于 2018-9-24 16:30 编辑

楼主程序里DMA传输数据宽度部分,应该是配置错了:
        DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word; //数据宽度为32位
        DMA_InitStructure.DMA_MemoryDataSize = DMA_PeripheralDataSize_Word; //数据宽度为32位
——改为:
        DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; //数据宽度为16位
        DMA_InitStructure.DMA_MemoryDataSize =  DMA_MemoryDataSize_HalfWord; //数据宽度为16位
123

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版