STM32F407VET6多通道采集ADC,非DMA方法HAL库

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可以正常采集并且更新

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值