草庐IT

基于ADC电压采集的锂电池电量显示方法

应用场景设备采用锂电池供电,可充电,MCU的ADC采集计算锂电池电压,电池电量根据锂电池放电特性,电池电量三段段码显示(分段式显示)。电量显示策略1.有充电器充电器插入的情况下:ADC采集电池电压,判断是否充满电(例如3.7V锂电池充满电的情况下大约是4.2V,满电电压根据实际测试选择,我们选择的是4.1V)。注意:电池电压满电电压不宜选择过高,否则会出现一直充电的情况,也不宜选择过低,不然就会出现电池未充满但是显示充满的情况。电池电压未到达满电电压:电池显示的三段循环递进显示(充电显示效果);电池电压到达满电电压:电池显示的三段全部显示(充满电)。2.无充电器充电器插入的情况下:ADC实时采

基于STM32的ADC采样序列频谱分析

  本文主要介绍对ADC采集得到的数字序列进行FFT频谱分析。确定采样率  确定采样率除了要遵守奈奎斯特采样定律意外还需要考虑一些问题。在数字系统中,我们只能进行一些有限的离散的运算,对于有限长的序列,我们不可能拿它去做DTFT,只能做DFT。这就需要把有限长序列也当作一个周期序列来看待。归一化角频率  已知采样率为fsf_sfs​,那么一个频率为f0f_0f0​(f0f0​fs​/2)的理想余弦信号被采样后得到的序列应该是:x[n]=Acos⁡(2πf0⋅nT0)=Acos⁡(2πf0⋅nfs)    n∈Zx[n]=A\cos\left({2\pi{f_0}\cdotn{T_0}}\rig

STM32-ADC电压采样实验(寄存器版)

STM32F10X系列支持三路ADC,其ADC通道及对应IO口如下表所示:其能接受的电压输入范围一般为0-3.3V(VREF-≤VIN≤VREF+),因此,如果需要测量超出0-3.3v量程范围的电压数据,需要在外围硬件增加分压电阻,将电路转换到0-3.3V量程范围内再进行采集。引脚配置这里用于做ADC采集的引脚使用单片机的PC1,将引脚配置为模拟输入模式。voidADC_GPIO_INIT(void){SET_BIT(RCC->APB2ENR,RCC_APB2ENR_IOPCEN);//开GPIOC端口时钟GPIOC->CRL&=~(0xfADC采样与中断配置本次实验使用中断进行对ADC的连续

STM32H750驱动ADC的一些知识与经验

1、ClockPrescaler:*ADC预分频系数选择。*可选的分频系数为1、2、4、6、8、10、12、16、32、64、128、256。*但是请记住,ADC的最大时钟为36MHZ不管是定时器触发还是软件触发!!2、Resolution:*ADC的分辨率。*可选的分辨率有16位、12位、10位和8位*16位时需要消耗8.5个ADC时钟周期*14位时需要消耗7.5个ADC时钟周期*12位时需要消耗6.5个ADC时钟周期*10位时需要消耗5.5个ADC时钟周期*8位时需要消耗4.5个ADC时钟周期3、ScanConvMode:*配置是否使用扫描。*如果是单通道转换使用ADC_SCAN_DISA

STM32使用内部参考电压提高ADC采集准确度

我们在使用ADC采集外部电压时,一般默认参考电压为MCU的供电电压,例如单片机供电电压为3.3V时,我们计算采集电压的公式为:假设12位ADC采集电压=(AD值/4096)*3.3;但是如果因为某些原因导致的供电不稳定,而我们任然按照3.3V计算,ADC采集计算出来的电压就会出现误差。在STM32手册中关于ADC的介绍中提到使用内部参考电压计算实际的VDDA电压。使用内部参考电压计算实际的VDDA电压:施加给微控制器的VDDA电源电压可能会有变化,或无法获得准确值。在制造过程中由ADC在VDDA=3.3V的条件下获得的内置内部参考电压(VREFINT)及其校准数据可用于评估实际的VDDA电压。

零死角玩转stm32中级篇4-ADC和DAC

本篇博文目录:一.ADC的基础概念1.什么是ADC2.在单片机中我们一般使用ADC技术来做什么?3.怎么查看单片机的某一个引脚是否具有ADC功能4.ADC采集和引脚数据的读取有什么区别5.单片机内部采用的是数字信号,为什么还要采用ADC进行转换6.ADC的分类7.ADC的工作原理8.ADC的参数二.DAC的基础知识1.什么是DAC2.在单片机中我们一般使用DAC技术来做什么?3.怎么看单片机的某一个引脚是否具有ADC功能4.PWM和DAC的区别5.DAC的工作原理6.DAC的参数三.代码实例一.ADC的基础概念1.什么是ADC①ADC全称为Analog-to-DigitalConverter,

Simulink嵌入式自动代码生成DSP 28335/28035/28x系列 (1)——官方例程(1)讲解 {ADC-PWM同步中断}

前言本人了解到电动汽车中OBC和DCDC普遍使用TI(德州仪器)DSP28335和28035系列芯片做开关电源控制,电源领域的工程师 需要对于芯片的配置和配套软件CodeComposerStudio(CCS)有一定的熟悉程度,具体涉及到C语言的编写和代码管理。在如今追求时效的大环境下,手打代码已不适应这样的工况(特别是版本迭代时)。现如今可以使用MATLAB中的simulink模块对DSPTI28x系列芯片做详细的配置,即使使用者在无代码编写经验仍能直接导出工程和代码本文可能适用于        使用Simulink简化管理代码应用层,配置底层的DSP工程师    入门电源行业的应届大学生  

Simulink嵌入式自动代码生成DSP 28335/28035/28x系列 (1)——官方例程(1)讲解 {ADC-PWM同步中断}

前言本人了解到电动汽车中OBC和DCDC普遍使用TI(德州仪器)DSP28335和28035系列芯片做开关电源控制,电源领域的工程师 需要对于芯片的配置和配套软件CodeComposerStudio(CCS)有一定的熟悉程度,具体涉及到C语言的编写和代码管理。在如今追求时效的大环境下,手打代码已不适应这样的工况(特别是版本迭代时)。现如今可以使用MATLAB中的simulink模块对DSPTI28x系列芯片做详细的配置,即使使用者在无代码编写经验仍能直接导出工程和代码本文可能适用于        使用Simulink简化管理代码应用层,配置底层的DSP工程师    入门电源行业的应届大学生  

STM32——ADC采集

目录ADC简介ADC主要特征ADC功能框图ADC引脚电压输入范围通道选择单次转换模式连续转换模式转换顺序规则序列 注入序列触发源转换时间中断转换结束中断模拟看门狗中断DMA请求代码讲解宏定义:ADC简介12位ADC是一种逐次逼近型模拟数字转换器,它有多达18个通道,可以测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行.ADC的结果可以是左对齐或者是右对齐方式存储在16位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阈值。ADC的输入时钟不得超过14MHZ,它是由PCLK2经分频产生。ADC主要特征12位分辨率转换结束、注入转换结

STM32——ADC采集

目录ADC简介ADC主要特征ADC功能框图ADC引脚电压输入范围通道选择单次转换模式连续转换模式转换顺序规则序列 注入序列触发源转换时间中断转换结束中断模拟看门狗中断DMA请求代码讲解宏定义:ADC简介12位ADC是一种逐次逼近型模拟数字转换器,它有多达18个通道,可以测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行.ADC的结果可以是左对齐或者是右对齐方式存储在16位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阈值。ADC的输入时钟不得超过14MHZ,它是由PCLK2经分频产生。ADC主要特征12位分辨率转换结束、注入转换结