精华内容
下载资源
问答
  • adc采集端口的电压,基础练习适合新手观看,各个文件单独分开易于移植
  • STM32ADC采集程序

    2018-09-06 10:15:07
    DAC输出一个控制电压值,ADC采集反馈值,再通过串口发送出去
  • 通过串口调试助手设定电压值(十六进制),用ADC采集显示在串口助手上
  • STM32(F103)的ADC读取电压程序
  • (2)本资源使用stm32自带的ADC采集外部输入的正弦信号(外加信号需要偏置,因为32自带ADC采集0~3.3V)。 (3)采用stm32官方DSP库的FFT算法处理数据(64,256,1024点处理) (4)计算正弦波失真度。 (5) 采样频率...
  • stm8s实现ADC采集电压,且对电压进行等级划分
  • MCU:STM32F103ZET6 功能:通过ADC采集数据 显示在LCD液晶屏上 并通过串口发送 说明:基于例程进行修改 到手可用
  • stm32F407ADC电压采集串口输出,采用均值滤波对采集的ad值进行处理...
  • 此时通过使用STM32的内部参考电压功能(Embedded internal reference voltage),可以准确的测量ADC管脚对应的电压值,精度 0.01v左右,可以满足大部分应用场景。 详情参考Blog: ...
  • 基于STM32F103的 ADC内部单路电压采集C代码,采用中断方式,精度可达1mV以内,使用串口接收数据,采集的数据不断发往串口,打开串口调试助手接收和保存数据。
  • ADC采集到的数据进行分析,识别波形(正弦波,方波,三角波),通过串口发送识别结果,结构优化的还不太好(就是个种方法堆在一起),个人认为程序思路比较简单。 注意!!!!!!这个方法已经被淘汰了,这种...
  • STM32 ADC采集和DAC输出

    2015-07-10 22:34:43
    STM32 ADC采集通过DAC直接输出,采集频率最大700hz可完全不失真,700到4k,打点不完全,4k以上开始失真
  • STM32F0xx_ADC采集电压配置详细过程 验证通过
  • STM32 ADC 采集输入电压

    千次阅读 2021-02-04 10:27:42
    1、电路 2.计算电压adc使用12bit,(配置代码省略) 分压计算:VIN_ADC = R13/(R13+R17) VIN(输入电压) = (3.0*BAT_ADC/4096)*13.3

    1、电路

    2.计算电压,adc使用12bit,(配置代码省略)

    分压计算:VIN_ADC = R13/(R13+R17)

    VIN(输入电压) = (3.0*BAT_ADC/4096)*13.3

    展开全文
  • STM32F103RBT6 通过ADC通道(PA6)采集电压并通过串行端口发送采集到的数据出来
  • STM32ADC多通道采集电压

    千次阅读 多人点赞 2019-08-26 20:55:21
    文章目录ADC详解程序说明函数主体引脚配置ADC和DMA配置主函数 ADC详解 前面的博客中详细介绍了STM32ADC的相关信息,这...此次采用多通道采集电压,使用ADC1的通道10、11、12、13、14、15一共六个通道,采用DMA将转...

    ADC详解

    前面的博客中详细介绍了STM32中ADC的相关信息,这篇博客是对ADC内容的一个总结提升,ADC的详细介绍:ADC详解

    程序说明

    为了使这次代码阅读方便,博主没有在头文件中宏定义变量,都是直接采样库函数中的规定形参。此次采用多通道采集电压,使用ADC1的通道10、11、12、13、14、15一共六个通道,采用DMA将转换结果传输至内存

    函数主体

    引脚配置

    引脚配置的时候,将所有引脚一次性配置好,过于简单,不作详细说明。

    void ADC_GPIO_Config(void)
    {
    	GPIO_InitTypeDef   GPIO_InitStruct;
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,  ENABLE);
    	
    	
    	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AIN ;
    	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0|
    								GPIO_Pin_1|
    								GPIO_Pin_2|
    								GPIO_Pin_3|
    								GPIO_Pin_4|
    								GPIO_Pin_5;
    	
    	GPIO_Init(GPIOC , &GPIO_InitStruct);
    }
    
    

    ADC和DMA配置

    此函数中主要配置了ADC的相关信息和DMA的信息。

    uint16_t result[6]={0,0,0,0,0,0};
    
    void ADC_DMA_COnfig(void)
    {
    	ADC_InitTypeDef  ADC_InitStructure;
    	DMA_InitTypeDef DMA_InitStructure;
    	
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,  ENABLE);
    	RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
    	
    	/* 复位DMA1的通道1 */
    	DMA_DeInit(DMA1_Channel1);
    	
    	// 配置 DMA 初始化结构体
    	// 外设基址为:ADC 数据寄存器地址
    	DMA_InitStructure.DMA_PeripheralBaseAddr = ( u32 ) ( ADC1_BASE+0x4c);
    	
    	// 存储器地址
    	DMA_InitStructure.DMA_MemoryBaseAddr = (u32)result;
    	
    	// 数据源来自外设
    	DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
    	
    	// 缓冲区大小,应该等于数据目的地的大小
    	DMA_InitStructure.DMA_BufferSize = 6;
    	
    	// 外设寄存器只有一个,地址不用递增
    	DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
    
    	// 存储器地址递增
    	DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; 
    	
    	// 外设数据大小为半字,即两个字节
    	DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
    	
    	// 内存数据大小也为半字,跟外设数据大小相同
    	DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
    	
    	// 循环传输模式
    	DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;	
    
    	// DMA 传输通道优先级为高,当使用一个DMA通道时,优先级设置不影响
    	DMA_InitStructure.DMA_Priority = DMA_Priority_High;
    	
    	// 禁止存储器到存储器模式,因为是从外设到存储器
    	DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
    	
    	// 初始化DMA
    	DMA_Init(DMA1_Channel1, &DMA_InitStructure);
    	
    	// 使能 DMA 通道
    	DMA_Cmd(DMA1_Channel1 , ENABLE);
    	
    	
    	// ADC 模式配置
    	// 只使用一个ADC,属于单模式
    	ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
    	
    	// 扫描模式
    	ADC_InitStructure.ADC_ScanConvMode = ENABLE ; 
    
    	// 连续转换模式
    	ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
    
    	// 不用外部触发转换,软件开启即可
    	ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
    
    	// 转换结果右对齐
    	ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
    	
    	// 转换通道个数
    	ADC_InitStructure.ADC_NbrOfChannel = 6;	
    		
    	// 初始化ADC
    	ADC_Init(ADC1, &ADC_InitStructure);
    	
    	// 配置ADC时钟为PCLK2的8分频,即9MHz
    	RCC_ADCCLKConfig(RCC_PCLK2_Div8); 
    	
    	// 配置ADC 通道的转换顺序和采样时间
    	ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1, ADC_SampleTime_55Cycles5);
    	ADC_RegularChannelConfig(ADC1, ADC_Channel_11, 2, ADC_SampleTime_55Cycles5);
    	ADC_RegularChannelConfig(ADC1, ADC_Channel_12, 3, ADC_SampleTime_55Cycles5);
    	ADC_RegularChannelConfig(ADC1, ADC_Channel_13, 4, ADC_SampleTime_55Cycles5);
    	ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 5, ADC_SampleTime_55Cycles5);
    	ADC_RegularChannelConfig(ADC1, ADC_Channel_15, 6, ADC_SampleTime_55Cycles5);
    	
    	// 使能ADC DMA 请求
    	ADC_DMACmd(ADC1, ENABLE);
    	
    	// 开启ADC ,并开始转换
    	ADC_Cmd(ADC1, ENABLE);
    	
    	// 初始化ADC 校准寄存器  
    	ADC_ResetCalibration(ADC1);
    	// 等待校准寄存器初始化完成
    	while(ADC_GetResetCalibrationStatus(ADC1));
    	
    	// ADC开始校准
    	ADC_StartCalibration(ADC1);
    	// 等待校准完成
    	while(ADC_GetCalibrationStatus(ADC1));
    	
    	// 由于没有采用外部触发,所以使用软件触发ADC转换 
    	ADC_SoftwareStartConvCmd(ADC1, ENABLE);
    

    函数开头定义了ADC和DMA的结构体变量,并且打开了俩个外设的时钟(DMA挂载在AHB总线上)。DMA模块可以参考之前写的博客:DMA
    这次DMA传输是从外设到内存,直接从ADC的数据寄存器中取数据,然后传输到全局数组变量result中。剩下的都在函数中作了详细注解。

    主函数

    #include "stm32f10x.h"
    #include "usart.h"
    #include "adc.h"
    
    
    
    extern uint16_t result[6];
    float voltage[6];
    
    
    void delay(void)
    {
    	uint32_t k=0xffffff;
    	while(k--);
    }
    
    int main(void)
    {
    	uint8_t n;
    	/* 配置串口 */
    	DEBUG_USART_Config();
    	/* 有关ADC的函数打包 */
    	ADCx_Init();
    	while(1)
    	{
    		for(n=0;n<6;n++)
    		{
    		    /* 转换为实际电压 */
    			voltage[n]=(float) result[n]/4096*3.3;
    			printf("\n通道%d的值为:%fV\n",n,voltage[n]);
    		}
    		delay();
    	}
    }
    
    

    主函数中也有相应注解。

    展开全文
  • AD初始化程序,使用DMA,采集电池电压,非常好用,采集速度快,已经验证
  • stm32_adc采集电压通过485发送给PC
  • 基于STM32F103的交流采集程序,通过ADC采集+DMA+软件滤波+均方根计算,直接算出交流信号的有效值,亲测好用,算法简单,耗时少,每一步所用时间均在程序中标注,方便使用。
  • STM32CUEB关于KEIL5、stm32f103c8t6的ADC读取数据,电压测量程序 .
  • STM32的片内ADC采集8路电压,可以打印输出到串口调试助手上
  • ADC模块采集电压流程 STM32 大部分系列都是使用SAR 逐次逼近型电压采集 VIN是采集的模拟输入口,VREF表示参考电压。Sa PIN和内部ADC的开关。Sb 接地开关。 电压采集阶段 电压采集阶段就是内部电容充电的过程。Sb...

    ADC模块采集电压流程

    数字世界和模拟世界的桥梁,对于嵌入式软件而言,大家止于采集功能的实现。

    本文目的在于深入理解ADC,积累技术做出更加稳定优秀的产品。

    在这里插入图片描述
    STM32 大部分系列都是使用SAR 逐次逼近型电压采集
    VIN是采集的模拟输入口,VREF表示参考电压。Sa PIN和内部ADC的开关。Sb 接地开关。

    电压采集阶段
    在这里插入图片描述
    电压采集阶段就是内部电容充电的过程。Sb闭合后ADC内部(这里称之为采样保存电路,并不是转换器核心)的电容会进行充电,这个过程需要消耗一定的时间。一但采集完成,相当于复制了一份模拟输入引脚的 电压值。采集阶段完成后这个时候VIN已经不需要了,也就是说这个Pin 上的电压已经采集完毕。
    在这里插入图片描述
    等效电路就是VIN对电容2C进行充电。
    前面说道这里是采用保持电路,所以有保持阶段
    在这里插入图片描述
    这个阶段就是各个电容充电完毕,在ADC核心转换器工作前的这断时间。这个时候VIN PIN模拟输入引脚已经和ADC断开了。Sb开路。
    也就是说实际上ADC 转换核心转换的是采样保持电路的电压。所以务必要根据手册,明确采样阶段最小用时,确保充电阶段完成。
    在这里插入图片描述
    其等效电路入上图所示电容器一断的电压为-VIN

    转换阶段
    这个阶段的重点在于每次二分。
    在这里插入图片描述

    在这里插入图片描述
    这里设计到一些电路的知识,如果是软件开发会比较难懂
    在这里插入图片描述
    在这里插入图片描述

    具体的过程讲起来比较复杂,软件工程师只需要对其逐次逼近转换的二分思路有理解即可。

    这个可能会因为各个芯片的转换核心而异

    在这里插入图片描述
    本节重点:
    1.ADC的采样保持电路 ,采集VIN电压,形成副本供ADC转换核心使用
    2.电压转换逐次逼近转换的二分思路 0.5+0.25+0.125+…=1
    在这里插入图片描述
    关于采样时间,采样时间是电容充电的过程,如上图所示,实线代表充电过程虚线代表放电。
    t =RC, C 为采样电容,R为充电回路的电阻。
    一般来说需要5 RC采样时间,这样内部电容可以精准的采集到输入电压。
    在这里插入图片描述
    5RC 时间大概采集到两端电压的99.3%
    在这里插入图片描述
    6RC 时间大概采集到两端电压的99.8%
    这个电压值永远都无法充电到100%V,一般来说5RC的时间,认为充满。

    5RC 充满到99.3%,还有千分之七的电压未采集。 7/1000
    一般的ADC 12位 1/4049的采样精度。这个时候需要去看产品的设计要求。一般情况下不需要做补偿。

    ADC module 转换误差

    对于STM32 ADC,电压的最小可检测增量变化用LSB表示为:

    1 LSB 表示ADC模块可分辨的最小电压
    12 位ADC 其一个单位表示V* 1/4096
    10 位ADC 其一个单位表示V* 1/1024

    为了后面书写方便 1LSB的系数表示为 12 位ADC P = 1/4096 ,10 位ADC P= 1/1024

    满量程转换电压V
    V 满量程转换电压,这部分不同的ADC和电路有不同的设计
    V =(VREF+)-(VREF-) 一般采用这种

    V =(VREF+)-(VSSD)
    其中VSSD可以为GND。这取决于电路设计。

    resault = Vin/V *P 其中Vin为需要采集的电压
    Vin在不同的ADC模块中有不同的配置
    Vin = Vi -VGND,对地电压
    Vin = Vp -Vn 差分输入电压。
    Vin = Vp- Vref-
    一般而言是最后一种,取决于电路的连接情况和ADC模块。

    把ADC作为一个系统而言,Vin是系统的输入,resault 是系统的输出

    V是系统内部的电压,其如果变化,那么输出结果变化。转换结果的稳定性就会受到影响。
    在这里插入图片描述
    ADC器件内部的误差

    1.偏移误差 offset

    offset一般指的是偏移误差,较正确值产生的一段位移。

    理想情况下,当模拟输入介于0.5 LSB和1.5 LSB之间时,数字输出应为1。

    V >0.5 LSB 输出1,V<0.5LSB 输出0,实际上 V>0.5LSB +W 时输出才为1,V<0.5LSB +W 为0
    就会有下面的曲线,W>0 也就是Eo >0
    在这里插入图片描述

    w < 0 时
    在这里插入图片描述
    可通过应用固件轻松校准偏移误差。也就是在ADC初始化的时候 calibration

    ADC Calibration 是一个很复杂的学问。我们只需要记得,一定要开启。

    增益误差是指ADC实际传输特性曲线和理想传输特性曲线的偏差程度。增益误差的单位是%FSR(满量程值)。如果没有校准,那么增益误差会限制信号输出的准确性
    在这里插入图片描述
    红线为理想ADC的传输特性曲线,蓝线为实际ADC的传输特性曲线。
    当然蓝色曲线在红色上方误差为 + ,再下方是为 -

    微分线性误差
    手册用 Linearity error 来表示。他表示了ADC器件在所有的数值点上对应的模拟值,和真实值之间误差最大的那一点的误差值。
    输出数值偏离线性最大的距离
    在这里插入图片描述
    积分线性误差为任何实际转换和端点相关线间的最大偏离。
    在这里插入图片描述
    总未调整误差
    总未调整误差( TUE)为实际和理想传输曲线间的最大偏离。此参数指定可能发生的会导致
    理想数字输出与实际数字输出之间最大偏离的总误差。
    在这里插入图片描述

    ADC环境导致的误差

    其中有很多是硬件工程师需要关注的问题,软件工程师需要对误差的来源有认识。
    在必要的情况下,要求硬件工程师一起参与问题的分析。

    1.参考电压噪声:电源的噪声导致参考电压波动,从而对ADC转换值产生影像
    2.参考电压/电源调节:负载及其输出阻抗导致电源输出下降,影响到参考电压

    3.外部参考电压参数
    当使用外部参考电压源( VREF+引脚上)时,该外部参考源有一些重要参数。必须考虑三个
    参考电压规格:温度漂移、电压噪声和长期稳定性

    4.模拟输入信号噪声
    在采样时间内,小而高频率的信号变化可导致较大转换误差。

    5.最大输入信号幅度的ADC动态范围匹配不佳
    被采集的信号电压波动范围,占ADC总量程的比例。

    6.模拟信号源电阻的影响
    在源和引脚之间的模拟信号源的阻抗或串联电阻( RAIN),可能会因为流入引脚的电流而导
    致其上的电压降。通过电阻为RADC的开关控制内部采样电容( CADC)的充电。
    在这里插入图片描述
    7.PCB源电容和寄生电容的影响
    在转换模拟信号时,必须考虑源电容和模拟输入引脚上的寄生电容
    一般情况下低频信号不用考虑,当然需要结合RC时间常数来考虑
    在这里插入图片描述
    8.注入电流的影响
    任何模拟引脚(或紧邻的数字输入引脚)上的负注入电流都可能在ADC输入中产生泄漏电流。
    在这里插入图片描述

    9.温度影响
    温度对ADC精度有重要影响。它主要产生两种重要误差:偏移误差漂移和增益误差漂移。这些误差可以在微控制器固件中得到补偿
    一般来说会制作一张温度和转换值的对应表格,用来修正温度对ADC的影像。

    10.I/O引脚串扰
    由于I/O之间的电容耦合,切换I/O可能会在ADC的模拟输入中产生一些噪声。彼此距离很
    近或交叉的PCB走线可能会产生串扰。
    内部切换数字信号和I/O会产生高频噪声。由于电流浪涌,切换高灌电流I/O可能导致电源
    电压小幅下降。 PCB上与模拟输入走线交叉的数字走线可能影响模拟信号

    在这里插入图片描述
    11.EMI产生的噪声
    在这里插入图片描述

    如何得到最佳ADC精度

    ADC自校准功能或通过微控制器固件可以轻松补偿偏移误差和增益误差。

    参考电压/电源噪声最小化(硬件设计),一般来说使用噪声小的电源,增加滤波电路。

    MCU端去耦,引脚间产生耦合
    在这里插入图片描述

    参考电压/电源调节
    电源的负载会产生变化,需要保证电压供给VREF 不会应为负载变化而变动

    模拟输入信号噪声消除

    1.多次求平均值
    2.添加外部滤波器
    3.添加白噪声或三角波扫描来改善分辨率。软件工程师只需要去求平均值。
    4.将ADC动态范围与最大信号幅度进行匹配
    在这里插入图片描述
    使用前置放大器。相对来说使用Gain的器件会引入误差,需要考虑是否划算。
    在这里插入图片描述
    5.模拟源电阻 (硬件方法)
    6.源频率条件 vs. 源和寄生电容 (硬件 方法)
    7.温度影响补偿 前面说过用查表
    8.注入电流最小化(硬件方法)
    9.I/O引脚串扰最小化
    在这里插入图片描述
    10.减少EMI所致噪声(硬件方法)
    11.将模拟和数字布局分开(硬件方法)
    12.隔离模拟和数字电路电源(硬件方法)

    提高精度的软件方法

    1.平均采样 多次采样会消耗跟多时间
    2.数字滤波
    3.AC测量的快速傅里叶变换
    4.ADC校准:偏移、增益、位权重校准
    5.使CPU生成的内部噪声最小化
    软件上比较高端的操作,在采样和转换周期数字静默

    实践方法

    1.多次求平均值

    在这里插入图片描述
    多次就平均值的 方法比较常见。采样N次,求N次采样的平均值。如果N为2的倍数,可以用位移的方法快速求得平均值。
    在这里插入图片描述
    总转换时间 = (采样数 * ADC 转换时间) + 计算时间
    额外的开销在与采样次数 和 计算时间。

    uint16_t ADC_GetSampleAvgN(uint8_t N)
    {
    uint32_t avg_sample =0x00;
    uint16_t adc_sample[8]={0,0,0,0,0,0,0,0};
    uint8_t index=0x00;
    /* 得到 N 个 ADC 采样 */
    for (index=0x00; index<N; index++)
    {
    /* ADC 开始转换 */
    ADC_SoftwareStartConv(ADC1);
    /* 等待转换结束 */
    while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC) == RESET);
    /* 储存 ADC 采样 */
    adc_sample[index] = ADC_GetConversionValue(ADC1);
    }
    /* 累加 N 个 ADC 采样 */
    for (index=0; index<N; index++)
    {
    avg_sample += adc_sample[index];
    }
    /* 计算 N 个 ADC 采样的均值 */
    avg_sample /= N;
    /* 返回均值 */
    return avg_sample;
    }
    

    基于先取 N 个 ADC 采样,将它们从最大值到最小值 (或相反顺序)排序,然后删除两端的 X 个采样。
    此平均方法比之前一个更有效,因为它删除了会影响平均的两端值,而且它在执行时间和转换精度之间给出了一个较好的折中。
    在这里插入图片描述
    同样额外的开销是计算时间。

    ADC 的软件滤波方法

    1.限制幅度滤波
    两次采样值的差值如果过大,则认为最近一次的值采集误差较大,舍去。

    该方法需要对采样值的变化幅度有所认知。也就是信号在采样间隔下的波动范围。采样值的波动超过原始信号的波动幅度认为采集到的数据
    收到干扰,故舍弃采样值。

    2.中间值
    采样多次,按照数值大小排列,去中间值为采样值

    对于信号的波动速度比较慢的信号效果比较好

    3.求平均值
    采样多次直接求平均

    采样多次意味着时间跨度较长,平均值的意义是一段时间的中间值。所以灵敏度比较低
    适合随机扰动的系统

    4.递推平均

    按照时间顺序,设定窗口大小,移动窗口进行采样

    5.中值平均

    采样N个值,去掉最大最小
    计算平均值

    6.限幅平均
    根据1方法,求平均值

    7.一阶低通
    y=K本次结果+(1-K)上次结果

    8.加权平均
    采样多次,每次采样的结果分配权重,取得平均值

    9。消抖
    在一段时间内采样值波动幅度在可接收范围内,认为抖动消除

    10.限制幅度消除抖动
    1,9方法结合

    展开全文
  • ADC电压采集程序

    2018-10-24 15:25:18
    压缩包中是基于stm32平台,里面有多种ADC的C语言代码。
  • STM32f103 ADC 电压转换 采集电压

    千次阅读 2019-12-12 11:21:54
    首先明确一个概念,嵌入式或者说单片机里进行ADC(数模)转化,所采集的数据一般是电流或电压,但绝大多数我们采集的...STM32F103电压采集范围0~3.3V,最终是需要计算转化得到实际值。 电路电压经过ADC转换后为一个...
    1. 首先明确一个概念,嵌入式或者说单片机里进行ADC(数模)转化,所采集的数据一般是电流或电压,但绝大多数我们采集的只是电压值。
      其实电子电路的取样电路存在电流取样和电压取样,如果想要直接采集电流,需要在采集端串联电阻,然后采集电阻两端电压,而且电流传感器采样范围也就几十毫安,一般需要放大器。
    2. 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为实际电压。
    展开全文
  • 咳咳,这一篇来玩一下STM32ADC(Analog to Digital Converter),也就是可以把输入的模拟量转换为数字量,这样就可以做个电压表了,再加上一些辅助电路,就能够自己做一个万用表了,非常完美。(嗯,这篇我们只做...
  • 基于STM32F030的ADC电压采集程序,通过推算系数与实际比较,充分开发stm32功能开发了最大程度减小误差的程序
  • STM32F1系列ADC电压采集

    千次阅读 2020-06-18 20:55:40
    1. ①电压输入范围 ADC 输入范围为:VREF- ≤ VIN ≤ VREF+。由 VREF-、VREF+ 、VDDA 、VSSA、这四个...以在外部加一个电压调理电路,把需要转换的电压抬升或者降压到 0~3.3V,这样 ADC 就 可以测量了。 2. ②输入...
  • R9 STM32ADC电压采集

    万次阅读 多人点赞 2017-08-02 15:34:24
    STM32ADC电压采集简介STM32f103 系列有 3 个 ADC,精度为 12 位,每个 ADC 最多有 16 个外部通道。其中 ADC1 和 ADC2 都有 16个外部通道,ADC3根据 CPU 引脚的不同通道数也不同,一般都有 8 个外部通道。目录...
  • STM32采样电压

    2019-11-01 21:03:22
    趁着实习的时候写了一个测电压值得程序,我用的是最小系统板,MCU是stm32f103rct6,这个是照着正点原子的教程自己改的,因为他的太复杂了,我就把简化到只有采样电压值得功能,自己测试是通过串口打印显示了出来,如...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,853
精华内容 1,141
关键字:

stm32adc采集电压程序