STM32F030 使用CUBEMX配置ADC多通道采集 DMA传输

STM32CubeMX的配置
STM32F030 使用CUBEMX配置ADC多通道采集 DMA传输_第1张图片
STM32F030 使用CUBEMX配置ADC多通道采集 DMA传输_第2张图片
STM32F030 使用CUBEMX配置ADC多通道采集 DMA传输_第3张图片
以下为测试代码
//usart重定向,注意使用前需要包含头文件

int fputc(int ch, FILE *f)
{
  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);
  return ch;
}

//定义数组,存放序列转换数据(数组里包含两个通道的数据,按序存放)

	uint16_t 	_u16ADC_Value[100];
	uint32_t 	_u32Value1;
	uint32_t 	_u32Value2;

//开启DMA和ADC。必须先开DMA

	HAL_ADC_Start_DMA(&hadc, (uint32_t*)&_u16ADC_Value, 100);
 	HAL_ADC_Start(&hadc); 
  while (1)
  {
    /* USER CODE END WHILE */
    /* USER CODE BEGIN 3 */
	_u32Value1 = _u32Value2 = 0;		//求均值
	for(int i = 0; i <100; )	
	{
		_u32Value1 += _u16ADC_Value[i++];
		_u32Value2 += _u16ADC_Value[i++];
	}
	_u32Value1 /= 50;						
	_u32Value2 /= 50;
	printf("h1 = %5d,h2 = %d\r\n",_u32Value1,_u32Value2);
	HAL_Delay(300);
  }

你可能感兴趣的:(stm32)