STM32只能采集0-3.3V的数据,如果需要采集0-5V和4-20mA的数据需要在电路中进行相关设计:
0-5V采集电路
4-20mA采集电路
本文主要讲述4-20mA采集电路采集
电路输入4-20mA,作用在120欧姆电路(后面面是电压跟随电路,并联),对应输入电压0.48~2.4V
STM32103ZET6为例,内部ADC采集12bit,0-3.3V对应采集到12bit的0-4095数值,则采集的电流对应大约为0.48/3.3*4059~2.4/3.3*4095-->595~2978数值
假如我们是采集的0-6Mpa的压力,那么简单的换算为:
(采集的数值-595)*6000000/(2978-595)=采集的压力(pa)
代码如下:代码需要将GPIO和ADC和DMA根据自己的电路接口简单配置即可
ADC.c代码,两个函数分别是ADC+DMA初始化代码和ADC采集一次代码
#include "stm32f10x.h"