STM32的ADC采集传感器的模拟量数据

1、 由于项目上使用传感器采集数据,传感器可以输出模拟电压信号,但是模拟电压信号的输出范围是1-5V,而STM32的ADC采集电压范围是0-3.3V,此时可以用一个简单的分压电路将1-5V的电压将至0.5V到2.5V的范围。

2、电阻分压电路可以使用两个10K电阻串联,一端接传感器的模拟量输出端,一端接地,两个电阻的中间接ADC引脚即可。

3、ADC进行电压采集的代码如下:将采集到的电压值再经过公式转换即可得到目标物理量值

复制代码
void Get_ADC_Value()
{
    HAL_ADC_Start(&hadc1);
    if(HAL_OK == HAL_ADC_PollForConversion(&hadc1,10))
    {
        ADC0_Value = HAL_ADC_GetValue(&hadc1);
//			  ADC0_Volt=ADC0_Value*200/4096+50;//扩大100倍,方便输出时计算小数(错误的公式转换)
			 ADC0_Volt=3.3*ADC0_Value/4096;//根据采样值算出采集到的电压值
			ADC0_Volt1000=ADC0_Volt*1000;//将采样电压值放大1000倍,方便后面数据显示时各个位的数据提取
			if(ADC0_Volt1000<500) CeLiang_data.LiuLiang_Value=0;//对数据做一个简单的处理,防止负数流量值的出现
			  else CeLiang_data.LiuLiang_Value=0.015*ADC0_Volt1000-7.5;//根据传感器电压和流量值的转换公式,计算出实际的流量值
    }
    HAL_ADC_Stop(&hadc1);
}
相关推荐
GQli204812 小时前
一天看懂一个原理图(day7)电源输入部分
单片机·嵌入式硬件
llilian_1613 小时前
失真度测量仪校准 精准可靠的失真度校准检定测试仪筑牢检测根基 失真度检定装置
功能测试·单片机·嵌入式硬件·硬件工程
XiYang-DING13 小时前
【Java EE】UDP 编程核心类与方法
单片机·udp·java-ee
iCxhust14 小时前
点亮8086最小系统的LED
stm32·单片机·嵌入式硬件·51单片机·微机原理·8086最小系统·8088单板机
时空自由民.15 小时前
开环无感FOC与SPWM&SVPWM
单片机·嵌入式硬件
集芯微电科技有限公司15 小时前
替代TMUX1380A/TMUX1309A双向8:1单通道 4:1双通道控制多路复用器
人工智能·单片机·嵌入式硬件·生成对抗网络·计算机外设
Wallace Zhang15 小时前
SimpleFOC源码学习10(v2.3.2) - 电流传感器CurrentSense.cpp与CurrentSense.h
驱动开发·stm32·学习·电流环·simplefoc·foc电机控制
我要成为嵌入式大佬15 小时前
项目制作日记简介
单片机·嵌入式硬件
FreakStudio16 小时前
工控开发板从开箱到点亮 LED-恩智浦MCXE31B 实测:3 路 CAN + 以太网+自带调试器
python·单片机·嵌入式·大学生·面向对象·技术栈·并行计算·电子diy·电子计算机
猿来&如此16 小时前
【51单片机】开发板介绍
单片机·嵌入式硬件·51单片机