搜索
查看: 691|回复: 0

STM32F0 ADC多通道单次转换,最后一个通道的EOC不置位

[复制链接]

该用户从未签到

9

主题

27

帖子

2

蝴蝶豆

中级会员

最后登录
2020-10-16
发表于 2019-12-31 14:02:35 | 显示全部楼层 |阅读模式
STM32F030 ADC采样序列中包括IN0,IN1,IN2三个通道,采用单次转换模式,软件触发启动,但是发现采样转换到最后一个通道IN2时,EOC不会置位,程序进入超时状态。有哪位朋友碰到过此问题?
主要代码如下:

uint16_t  ADCValue[3;
void MX_ADC_Init(void)
{  
  ADC_ChannelConfTypeDef sConfig;  
  hadc.Instance = ADC1;  
  hadc.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1;  
  hadc.Init.Resolution = ADC_RESOLUTION_12B;  
  hadc.Init.DataAlign = ADC_DATAALIGN_RIGHT;  
  hadc.Init.ScanConvMode = ADC_SCAN_DIRECTION_FORWARD;  
  hadc.Init.EOCSelection = ADC_EOC_SINGLE_CONV;  
  hadc.Init.LowPowerAutoWait = DISABLE;  
  hadc.Init.LowPowerAutoPowerOff = DISABLE;  
  hadc.Init.ContinuousConvMode = DISABLE;  
  hadc.Init.DiscontinuousConvMode = DISABLE;  

  hadc.Init.ExternalTrigConv = ADC_SOFTWARE_START;  
  hadc.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;  
  hadc.Init.DMAContinuousRequests = DISABLE;  
  hadc.Init.Overrun = ADC_OVR_DATA_PRESERVED;  
  if (HAL_ADC_Init(&hadc) != HAL_OK)  
  {   
    _Error_Handler(__FILE__, __LINE__);  
  }  

  sConfig.Channel = ADC_CHANNEL_0;  
  sConfig.Rank = ADC_RANK_CHANNEL_NUMBER;  
  sConfig.SamplingTime = ADC_SAMPLETIME_7CYCLES_5;  
  if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)  
  {
    _Error_Handler(__FILE__, __LINE__);  
  }  

  sConfig.Channel = ADC_CHANNEL_1;  
  if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)  
  {
    _Error_Handler(__FILE__, __LINE__);  
  }  

  sConfig.Channel = ADC_CHANNEL_2;  
  if (HAL_ADC_ConfigChannel(&hadc, &sConfig) != HAL_OK)  
  {
    _Error_Handler(__FILE__, __LINE__);  
  }
}

void Get_ADCVal(void)
{  
  uint8_t  i;  

  if (HAL_ADC_Start(&hadc) != HAL_OK)  
  {   
    _Error_Handler(__FILE__, __LINE__);  
  }  

  for ( i=0;  i<3;  i++ )   
  {   
    if (HAL_ADC_PollForConversion(&hadc, 20) != HAL_OK)   
       _Error_Handler(__FILE__, __LINE__);   // ********** 当 i 递增到2时,程序执行死在这里!!!!!!!!!!   
    else   
      ADCValue[i = HAL_ADC_GetValue(&hadc);   
  }
    // HAL_ADC_Stop(&hadc);
}
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-25 08:19 , Processed in 0.148844 second(s), 29 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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