STM32CubeMX的配置
以下为测试代码
//usart重定向,注意使用前需要包含头文件<stdio.h>
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);
}