使用中断方式进行AD转换(野火STM32 MINI开发板)

实验器材:野火STM32 MINI开发板

任务目标:利用ADC采集电位器的电压,并通过串口调试助手输出变化的电压值

任务内容:调整开发板上的滑动变阻器,将电压值通过开发板到PC进行显示(使用中断方式)

该部分内容与使用轮询方式的大部分内容相同,如下仅撰写修改的地方,其他内容请参考(12条消息) 使用轮询方式进行ADC转换_yufeng4108的博客-CSDN博客 

一、CubeMX配置

 3.外设配置

 3.3 Analog 设置

仅修改如图所示部分,其他内容不变

开启ADC1的全局中断

 3.4 Timers设置

按照下图1-3进行设置,每次中断为500ms,Trigger Event Selection选择Update Event

   二 Cube IDE程序编写

1. 启动ADC、中断及打印提示用语

  /* USER CODE BEGIN 2 */
  HAL_ADC_Start_IT(&hadc1);
  HAL_TIM_Base_Start(&htim8);
  printf("******ADC Function*********\n");
  /* USER CODE END 2 */

2.While循环函数

该部分不需要内容填写

    /* USER CODE BEGIN 3 */
	 
  }
  /* USER CODE END 3 */

3.中断回调函数

/* USER CODE BEGIN 4 */
PUTCHAR_PROTOTYPE
{
  HAL_UART_Transmit(&huart1, (uint8_t*)&ch, 1, HAL_MAX_DELAY);
  return ch;
}

GETCHAR_PROTOTYPE
{
	uint8_t  ch;
	HAL_UART_Receive(&huart1,(uint8_t *)&ch, 1, HAL_MAX_DELAY);
    return  ch;
}
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
{
	if(hadc->Instance == ADC1)
	{
		 val=HAL_ADC_GetValue(&hadc1) ;
		 Volt=3300*val/4096;
		 printf("Volt: %ldmV\r\n",Volt);
	}
}
/* USER CODE END 4 */

4. 实验结果

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值