1.CUBEMX配置
配置ADC:
配置一个串口用于打印显示:
2.代码
uint16_t ADC_Value[2]={0};//定义ADC接收变量
//串口输出重定向
int fputc(int ch, FILE *f)
{
uint8_t temp[1] = {ch};
HAL_UART_Transmit(&huart1, temp, 1, 0xffff);
return ch;
}
//获取采集的ADC
uint16_t Get_adc()
{
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1,100);
if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1),HAL_ADC_STATE_REG_EOC))
{
return HAL_ADC_GetValue(&hadc1);
}
return 0;
}
main.c
while (1)
{
for(uint8_t i=0;i<2;i++)
{
ADC_Value[i]=Get_adc();
}
for(int i=0;i<2;i++)
{
printf("ADC_Value[%d]:%d\r\n",i,ADC_Value[i]);
}
HAL_Delay(300);
}
3.结果
ADC可以正常采集并且更新