08_ADC轮询方式读取电压值/DMA方式多通道采集/DAC数模转换

ADC轮询方式读取电压值/DMA方式多通道采集/DAC数模转换

ADC轮询方式读取电压值

在这里插入图片描述

  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
	  HAL_ADC_Start(&hadc1);//启动ADC装换
	HAL_ADC_PollForConversion(&hadc1, 50);//等待转换完成,第二个参数表示超时时间,单位ms.
	if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1), HAL_ADC_STATE_REG_EOC)){
	AD_Value = HAL_ADC_GetValue(&hadc1);//读取ADC转换数据,数据为12位
	printf("[\tmain]info:v=%.1fmv\r\n",AD_Value*3300.0/4096);//打印日志
}
  }
  /* USER CODE END 3 */
}

DMA方式多通道采集

在这里插入图片描述
在这里插入图片描述

while (1){
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_Delay(500);
for(i = 0,ad1 =0,ad2=0; i < 100;){
ad1 += ADC_Value[i++];
ad2 += ADC_Value[i++];
}
ad1 /= 50;
ad2 /= 50;
printf("\r\n********ADC-DMA-Example********\r\n");
printf("[\tmain]info:AD1_value=%1.3fV\r\n", ad1*3.3f/4096);
printf("[\tmain]info:AD2_value=%1.3fV\r\n", ad2*3.3f/4096);
}

DAC数模转换

在这里插入图片描述

//开启DAC转换
HAL_DAC_Start(&hdac, DAC_CHANNEL_1);
// 设置DAC的大小
HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_12B_R, 2048);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值