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);
}
相关推荐
阿容1234563 小时前
stm32两轮平衡小车 -04
stm32·嵌入式硬件
silno5 小时前
图解 STM32 USB CDC虚拟串口 的实现
stm32·单片机·stm32f103c8t6·cdc虚拟串口
Silicore_Emma6 小时前
芯谷科技—D8227 双通道音频功率放大集成电路产品简介与应用推广
单片机·音视频·功率放大器·芯谷科技·便携式音频设备·双通道音频·车载音频系统
Darken037 小时前
单片机的库函数和HAL库有什么区别?还有那些库函数?
单片机·hal库·ai学习
皓月盈江7 小时前
STC12、STC15、STM32系列单片机控制16*64LED点阵屏显示,修改显示内容
单片机·嵌入式硬件·keil·stm32f103c8t6·stc12c5a60s2·stc15w4k32s4·led点阵屏程序源码
qq_448011168 小时前
USB概述
嵌入式硬件
沐欣工作室_lvyiyi8 小时前
智能家居安全报警系统设计(论文+源码)
单片机·毕业设计·智能家居·家居安全报警
一枝小雨9 小时前
7 App代码转AES加密文件生成步骤
stm32·单片机·嵌入式·aes·ota·bootloader·加密升级
li星野9 小时前
打工人日报#20251202
单片机·嵌入式硬件
mylinke9 小时前
永磁同步电机双闭环控制模型故障诊断与仿真研究:基于MATLAB Simulink的仿真代码实现
单片机