STM32f103 ADC 电压转换 采集电压

首先明确一个概念,嵌入式或者说单片机里进行ADC(数模)转化,所采集的数据一般是电流或电压,但绝大多数我们采集的只是电压值。
其实电子电路的取样电路存在电流取样和电压取样,如果想要直接采集电流,需要在采集端串联电阻,然后采集电阻两端电压,而且电流传感器采样范围也就几十毫安,一般需要放大器。
STM32F103电压采集范围0~3.3V,最终是需要计算转化得到实际值。
电路电压经过ADC转换后为一个12Bit的数字,要想看到实际的采集电压值,需要这么计算:
(1)ADC是12bit,采集范围0~3.3V,也就是2^12(4096)对应3.3
(2)(2^12)/3.3=X/Y X为12bit转换后数值,Y为实际电压。
 

以氧气传感器举个例子:

// 读取氧气浓度和流量
void ReadAdc()
{
	if (flowTick >= 10)
	{
		flowTick = 0;
		u16 in10 = Get_Adc_Average(ADC_Channel_10, 20);
		concentration = in10 * 100 / 3080;
		u16 in11 = Get_Adc_Average(ADC_Channel_11, 20);
		float voatage=in11*3.3/4096-0.15;
		flow = voatage*2000 /3;
	
	}
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32F103多通道ADC采集是指使用STCubeIDE开发环境对STM32F103系列微控制器进行多通道模拟信号采集STM32F103是一款由STMicroelectronics公司推出的32位ARM Cortex-M3内核的微控制器,具有多个通道的ADC模块用于模拟信号的转换。 使用STCubeIDE进行开发可以简化程序的编写和调试过程。首先,需要在STCubeIDE的工程中配置ADC模块,设置采样率、分辨率和输出数据格式等参数。然后,配置每个通道的引脚,选择输入模式(单端或差分模式)和参考电压源。 接下来,可以通过编写代码来实现ADC的初始化和启动。初始化ADC模块后,可以通过启动ADC转换来开始采集模拟信号。同时,还需要设置中断或DMA传输来处理ADC转换完成后的数据。 在多通道ADC采集过程中,需要按照一定的采样顺序依次选择每个通道进行转换。可以使用软件触发或外部触发来控制ADC转换时间。每次转换完成后,可以通过读取ADC数据寄存器来获取转换结果。 最后,可以根据需要对采集的模拟信号进行处理和存储。可以使用滤波算法对数据进行滤波,提高采集精度和稳定性。同时,也可以使用存储器或外部接口将采集的数据保存或传输到其他设备。 总之,STM32F103多通道ADC采集是一种利用STCubeIDE开发环境对STM32F103微控制器进行多通道模拟信号采集的方法。通过合理配置和编写代码,可以实现对多个通道的模拟信号进行高效准确的采集和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值