ps:本文基于stm32F407ZGT6单片机

stm32F4单片机单通道采集的最大采样率为2.4M,所以有时会难以满足较高频率的采样,于是查阅芯片手册,发现stm32F4支持多重ADC采集,利用每个通道的转换时间,错位采样,从而提高采样率,最大把采样率开到2.4*3=7.2M.  (去年初学ADC时研究的,基于cube和HAL库的三重ADC交错采样参考资料不多,我也是研究了一段时间,写下这篇博客希望可以帮助到更多人。)

示意图如下:

以下是官方例子的说明,

In this example, the system clock is 144MHz, APB2 = 72MHz and ADC clock = APB2 /2. 
Since ADCCLK= 36MHz and Conversion rate = 5 cycles 
==> Conversion Time = 36M/5cyc = 7.2Msps

这是利用软件触发ADC连续采样的,我试了一下,是可行的。网上为数不多的参考资料也是按上述连续转换模式下的。

但是我是比较习惯使用定时器触发采样的,因为采样率连续可调,比连续转换灵活一些。

所以我开始尝试定时器触发三重ADC!

配置如下:打开TIM8,挂在APB2上,为144M

时钟频率配置多少呢?

打开芯片手册:

由此可知 触发源只需要触发ADC1 ADC2和3是根据芯片设定好的三重模式固有时间后自动开启采集的

故ADC1只需配置2.4M  144M/60=2.4M

ADC如何配置呢?

再看芯片手册!

DMA mode2  !

ADC1配置如下:

(选通道12是因为它纯净 干扰少)

记得打开DMA !

配置类似单通道ADC+定时器触发!

ADC2/3 同上 这里就不赘述了!

完成!

生成代码!

代码里如何写呢?

再再再次打开芯片手册!!

原来如此!我感觉我可以!

开启ADC123和TIM8:(注意三重ADC交替模式下,ADC1有固有开启函数)

编译!烧录!

去年测试的,疫情在家就不给测试图了QAQ

去年测试时是用信号发生器给了100khz正弦波信号,一个周期采到了72个点左右。

ps:据学长说这种方式不稳定,单片机工作量大时可能会出bug。

stm32教程之三重ADC交错采样相关推荐

  1. STM32F4系列探究1——三重ADC扫描连续采样+DMA双缓冲区存储

    文章目录 前言 一.STM32F4的ADC理论知识学习 1.基础知识 2.扫描模式与连续模式 3.单ADC模式下双缓存机制的实现 4.三重同步采样模式 二.由定时器触发的单缓冲区模式 1.时钟树配置 ...

  2. STM32学习笔记一一ADC

    前言: 为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长. github:my github 注:博客所涉及的关于 stm32 的代码 ...

  3. STM32F103C8T6制作舵机测试仪详细图文教程 | 定时器触发ADC | DMA传输 | PWM输出 | RTC实时时钟 | USART串口输出 | OLED IIC显示

    自主学习STM32已有一周,先实现一个小demo,算是给自己一个动力叭,有目标的学习收获会更多.虽然本科也修了嵌入式课程,但那种走马观花式的学习,最后真正得到的知识实在寥寥无几.个人理解,学习STM3 ...

  4. STM32单片机实现DMA+ADC+UART功能

    突然想测试一下STM32单片机ADC采样速率问题,按照常规方法,可以通过ADC采样,然后将采样值打印出来.但是这种方法在处理和打印数据的时候会占用很多时间,导致处理数据的时间超过了ADC的采样时间.于 ...

  5. STM32 C++编程 004 Adc (数模转换)类

    使用 C++ 语言给 STM32 编写一个 Adc 类 我使用的STM32芯片:STM32F103ZET6 我们使用的STM32库版本:V3.5.0 注意: 想学习本套 STM32 C++编程 的专栏 ...

  6. STM32F407三重ADC配置

    #include "adc.h" #include "stm32f4xx.h" __IO uint16_t ADC_ConvertValue[3]={10,10 ...

  7. STM32 CubeMx LL库-ADC操作

    STM32 CubeMx LL库-ADC操作 硬件选型 stm32f103c8t6 USB-TTL 关于STM32的ADC介绍这里有时间再补充,直接进入代码编写. 1. CubeMx-ADC配置 2. ...

  8. STC单片机通过ADC分段采样读按键实现方法

    STC单片机通过ADC分段采样读按键实现方法 ✨在阅读官方FreeRTOS for STC32G12K128开源工程当中有使用到ADC键盘计算键码功能块,底层实现原理也很简单,就是通过串联电阻分压的方 ...

  9. STM8S系列基于IAR开发单通道ADC连续采样示例

    STM8S系列基于IAR开发单通道ADC连续采样示例

  10. STM8学习笔记---ADC多通道采样

    STM8S003单片机ADC采样通道总共有5个,从AIN2---AIN6,多通道采样时需要将ADC转换设置为单次转换模式,每次切换采样通道后,需要重新初始化 ADC,采样结果在中断中读取. IO口初始 ...

最新文章

  1. Numpy入门教程:练习作业01
  2. 【python】Series和DataFrame的简单介绍
  3. SICP 1.21 1.22 1.23 1.24
  4. 我所理解cocos2d-x 3.6 lua --使用Cocos Studio
  5. PHP快还是HTML快,PHP_HTML-加速、再加速,web开发人员是否必须掌握复杂 - phpStudy...
  6. c均值算法的设计与实现_如何使用C链表实现 LRU 算法
  7. 在ASP.NET中防止注入攻击[翻译]
  8. meteor 结合mysql_Meteor集合
  9. 自动化测试--testNG
  10. SAP SolMan 严重漏洞的自动化 exploit 代码遭公开
  11. 使用MSDN学习ASP.NET的工作流程
  12. javascript 模板
  13. 面试题:synchronized的底层实现(偏向锁,轻量级锁,重量级锁)
  14. hitool java_第三章:使用HiTool下载程序
  15. 创建asp网站iis发布网站用IP地址进行访问
  16. 电影院票务管理系统数据库设计
  17. mzy对于枚举的理解
  18. 二十一世纪“新元宇宙”奇幻小说作品系列连载
  19. 转贴一个关于DTO DAO VO BO PO POJO的^_^
  20. C++ STL源码剖析 笔记

热门文章

  1. 主板检测卡c5_计算机主板检测卡检测显示C5是哪的問題?
  2. ModifyStyle()
  3. 《星科快报》第二期:元宇宙之道.
  4. 【栈】实现逆波兰计算器
  5. 金山文字 职称计算机,计算机职称考试金山文字2005考试大纲
  6. flash 加载外部flash怎么卸载干净
  7. 淘宝店铺层级作用 店铺层级低有哪些影响
  8. ubuntu18.04 安装扫描仪驱动程序
  9. 教学演示软件 模型八 医学的人体模型
  10. RainMeter学习2