一、前言


上一个笔记:STM32H743+CubeMX-ADC+DMA采样三路模拟量(并行),没过采样
这个应该是STM32上ADC采样的终极解决方案了,硬件1024倍过采样+DMA搬运数据。

在一个实验的基础上,添加STM32H743的过采样器硬件,实现1024倍采样滤波算法。在上一个笔记的基础下,仅仅修改STM32CubeMX就能实现,代码都不用动!

以往像STM32F103(Cortex-M3)与STM32F407(Cortex-M4)的MCU都没有过采样器的硬件,MCU虽然可以不参与数据搬运(DMA搬运),但是采样滤波算法需要自己用代码实现的。算法很简单,就是积分后再求平均。

STM32H743的过采样器:

STM32工程:
链接:https://pan.baidu.com/s/1rWyWvMYj_BisR6z8yHnrZQ
提取码:xpbg

二、CubeMX


2.1、ADC

设置完成后,直接生成代码。

三、Debug


3.1、Debug(printf) Viewer

3.2、观察全局变量

四、细节补充


4.1、采样时间的计算

首先要确认ADC的工作频率,还有ADC3的分频系数。




从上面的信息可以算出ADC3的工作频率是72M / 16 = 4.5MHz。

ADC3单个通道的转换频率 =4.5M / ( 采样时间 + 逐次逼近时间 )
=4.5M /( 810.5 cycles + 8.5 cycles )
=4.5M / 819 cycles
= 5.49kHz
ADC3单个通道的转换的周期T = 1 / 5.49kHz = 0.1821ms = 182.1us

当前一共是3个通道,所以ADC总的转换周期T = 182.1us * 3 = 546.3us,所以ADC3的转换总时间不超过1ms。这个时间指标很重要,它决定了MCU每隔多少时间来取数据才能取到不重复的(有意义的)数据。比如ADC3的转换总时间T = 10ms,如果MCU每隔5ms来获取一次数据的话,其中一半的数据都是重复的(没意义的)数据。

STM32H743+CubeMX-ADC(16bit分辨率)+DMA采样三路模拟量,硬件过采样器实现1024倍过采样相关推荐

  1. STM32H743+CubeMX-ADC(16bit分辨率)+DMA采样三路模拟量(并行),没过采样。

    文章目录 一.前言 二.CubeMX 2.1.RCC,SYS,Clock Configuration 2.2.CORTEX_M7(cache与MPU) 2.3.ADC3 Mode and Config ...

  2. STM32使用ADC+DMA进行多通道模拟量采集 (踩坑及傻瓜式解析)

    STM32使用ADC+DMA进行多通道模拟量采集 (踩坑及通俗解析) ​ 利用STM32的片上外设可采集多个模拟量(如传感器数值),并在嵌入式程序中使用.如果只使用了一个通道,用时令ADC转换而后读取 ...

  3. 用单片机普通IO口(不用ADC功能)采集模拟量

    http://www.51hei.com/bbs/dpj-126017-1.html 以下介绍的这个方法是用没有 ADC 功能的芯片来检测模拟量,采集温度: 1. 温度检测电路图 :   2. 温度检 ...

  4. STM32F407 ADC+DMA+定时器 定时采样模拟量

    STM32F407 ADC+DMA+定时器 定时采样模拟量 文章目录 STM32F407 ADC+DMA+定时器 定时采样模拟量 前言 一.硬件原理 1.1 ADC 1.2 定时器 3. DMA 二. ...

  5. 【STM32F429开发板用户手册】第33章 STM32F429的SPI总线应用之驱动DAC8563(双通道,16bit分辨率,正负10V)

    最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255 第33章       STM32F429的SPI总线应用之驱动DA ...

  6. 【STM32H7教程】第74章 STM32H7的SPI总线应用之驱动DAC8563(双通道,16bit分辨率,正负10V)

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第74章       STM32H7的SPI总线应用之驱动DA ...

  7. stm32h7高速通信_【STM32H7教程】第75章 STM32H7的SPI总线应用之驱动DAC8501(双路输出,16bit分辨率,0-5V)...

    第75章       STM32H7的SPI总线应用之驱动DAC8501(双路输出,16bit分辨率,0-5V) 本章节为大家讲解标准SPI接线方式驱动模数转换器DAC8501,制作了中断和DMA两种 ...

  8. 【STM32F429开发板用户手册】第34章 STM32F429的SPI总线应用之驱动DAC8501(双路输出,16bit分辨率,0-5V)

    最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255 第34章       STM32F429的SPI总线应用之驱动DA ...

  9. adc采样的值跳动_嵌入式er必知:模数采样知多少(最全总结)

    [导读]  生活环境周围信号万万千,对于一个嵌入式er.我们利用技术去了解世界.改变世界.而一个产品要与外界物理环境打交道,一个至关重要的触角就是采样真实模拟世界的信号,翻译成芯片可理解的数字信号,进 ...

最新文章

  1. 电脑任务管理器_安国戴尔电脑显示器维修,服务至上
  2. 开发日记-20190329
  3. NLP CV ML future
  4. Android 中英文语言切换
  5. 有ul没有字html,HTML ul 标签
  6. 运维工程师必会的linux命令下载,运维工程师必会的109个Linux命令.pdf
  7. 聊聊2019年的web前端
  8. 【转】基于Token的身份验证原理
  9. 电路理论与linkage Mapper的安装
  10. C#将DBGrid中数据导出为Excel的很小很强大的代码
  11. appium_android-常见的问题
  12. 关于51芯片及引脚功能介绍与总结
  13. 北京知产局:鼓励当事人用区块链,获取、固定知识产权纠纷证据
  14. PLSQL登录时怎么输入数据库地址
  15. python圆形螺旋线_Python Turtle绘制漂亮彩色螺旋线及一闪而过的解决
  16. 估计中的概率公式总结
  17. hive 分区表select全部数据_Hive中如何快速的复制一张分区表(包括数据)
  18. #1002 写出这个数(Python3)
  19. NBIS单细胞教程:差异基因(五)
  20. element-plus日历(Calendar)动态渲染+避坑指南

热门文章

  1. 关于标准输入输出流和string类
  2. java中时间各种格式
  3. clientHeight.offsetHeight.scrollHeight等的区别
  4. easy bootstrap模板
  5. ASPxGridView 结合CheckBox实现多选(在后台事件代码控制)
  6. 判断数组中是否包含某个字符(contains)
  7. 数据分析师想收入翻倍,不懂点时间管理怎么行
  8. 『飞鸽』百度悄然进军客户端领域
  9. 经典面试题(15):以下代码将输出的结果是什么?
  10. 性能优化(8):使用javascript缓存查询结果