一起来学小熊派 9 ADC 2021-07-24

创建工程

 

开启及设置ADC

 

 开启ADC中断

 设置时钟树

 保存工程

 

MDK编写程序

因为要使用printf函数,所以先重写fputs函数

#include "stdio.h" //添加头文件

/* USER CODE BEGIN 1 */
int fputc (int ch,FILE* f){
	uint8_t temp[1]={ch};
	HAL_UART_Transmit(&huart1,temp,1,2);
	return HAL_OK;
}

/* USER CODE END 1 */

 非常重要的一步  开启MircoLIB

添加头文件和变量

/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */

/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */
uint16_t ADCValue=0;
float Voltage=0;
/* USER CODE END PTD */

 修改main函数

  /* USER CODE BEGIN 2 */
	HAL_ADC_Start_DMA(&hadc1,(uint32_t*)&ADCValue,1);//启动DMA
	printf("ADCValue:%d,ADCValue:%f\r\n",ADCValue,Voltage);//打印转换数据和换算电压
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
		Voltage=ADCValue*3.3/4096;//换算电压2^12=4096
		printf("ADCValue:%d,ADCValue:%f\r\n",ADCValue,Voltage);//打印转换数据和换算电压
		HAL_Delay(2000);

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

重写中断函数

/* USER CODE BEGIN 4 */
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)  //adc调用
{
	if(hadc->Instance==ADC1)
	{
	HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_SET);
}
}

/* USER CODE END 4 */

 编译烧写即可实现ADC输出串口电压

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值