STM32HAL学习笔记八-ADC

STM32HAL学习笔记八-ADC

	本实验是ADC,依旧是在串口通信实验(实验二)的基础上修改

1.ADC简介

ADC(analog to digital converter)即模数转换器,它可以将模拟量信号转换为数字信号,按照转换原理主要分为逐次逼近型、双积分型、电压频率转换型三种。STM32F1的ADC是12位逐次逼近型的模数转换器,它有18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位存储寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阈值。ADC的时钟不要超过14M,否则将导致结果准确度下降。

2.CubeMX配置

2.1打开ADC1的通道1

请添加图片描述

2.2配置时钟

请添加图片描述

3.程序编写

3.1定义变量

请添加图片描述

	uint16_t AD_Value;
	float Vol_Value;

3.2循环转换与打印

请添加图片描述

HAL_ADC_Start(&hadc1);    //启动ADC转换
HAL_ADC_PollForConversion(&hadc1,10); //等待转换完成,10ms表示超时时间
AD_Value = HAL_ADC_GetValue(&hadc1);  //读取ADC转换数据(12位数据)
printf("ADC1_IN0 ADC value: %d\r\n",AD_Value);
Vol_Value = AD_Value*(3.3/4096);  //AD值乘以分辨率即为电压值
printf("ADC1_IN0 VOL value: %.2fV\r\n",Vol_Value);

4.调试结果

请添加图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值