STM32G473CBT6单片机在浮点运算,信号采集、数据处理方面有很大的用途。因相关的资料较少,特此做一下笔记,方便后期使用。STM32CubeMX软件比较强大,兼容IAR和keil方便直接生成代码文件,但相关的库不熟悉,好东西用起来较苦恼。

ADC是STM32的一大外设资源,可以方便数据采集。但ADC的调用和ADC采集的方式较多,暂时列出常用的使用方法。

Scan Conversion Mode:ADC的采集通道很多,其支持单通道采集和多通道采集。多通道数据采集时,需要选择此标签为Enable,才能采集扫描其他的数据通道。

Continuous Scan Conversion Mode:ADC采集时如果采集一次就停止,则选择Disable;如果需要周期性的连续的采集数据,则选择Enable。

DMA Continuous Requests:当需要选择DMA进行数据转运时,需要关注此标签,选择Enable,表示DMA通道数据转运完成后,继续请求dma进行数据转运,相当于连续转运。

一、ADC获取数据的方式

ADC完成数据采集后,有两种方式进行获取结果,第一种轮询方式,此原理是ADC采集完成后,MCU查询采集完成状态,之后获取采集结果。此种方式因MCU需要等待采集完成,因此较耗费资源;第二种方式是DMA方式,当ADC采集完成后,DMA处理器将结果转运到内存中,我们直接访问内存即可获取结果,应用较广泛,MCU该干啥干啥,不占用资源。第三种方式是中断,因我不常用就不详述。

二、ADC轮询采样:

2.1设置时钟,因我的硬件是采用外置8M晶振。因此选择如下:

   2.2 选择串口调试模式

  2.3 设置系统主频为72M

2.4 设置ADC输入管脚,本人硬件上是ADCIN4单通道采集,所以选择如下:

Clock为8分频,因ADC采集最高速率不应超过14M的限制。

2.5 Rank的采样时间尽可能长些,这样会准一些。本文设置为92.5cycles。

2.6 之后即可生成代码。在自己写的代码中调用以下函数可以实现周期性的轮询adc的结果。

三、ADC+DMA采样:

设置时钟等就不在赘述,在此直接上关键设置。

3.1 DMA的设置,mode 改为circular,可以周期性的循环搬运数据。

3.2 adc的设置 continueous conversion mode 需要改为enable,才能adc连续采集;dma                     continuous requests改为enable,dma才能连续搬运数据。

     3.3 生成代码,程序中增加如下函数即可。

四、ADC+DMA+定时器采样

设置时钟等就不在赘述,在此直接上关键设置。

4.1 设置tim3,定时周期为(14400)*50000/72M=10s

4.2 adc触发选择tim3,连续转换模式必须关闭,等待定时器触发

4.3 生成代码后,主函数中调用如下函数即可

STM32G473CBT6关于ADC采集的总结相关推荐

  1. TMS320VC5509片内ADC采集

    1. ADC采集比较简单,内部的10位的ADC,AIN0-AIN3的输入,主要是用的CSL的库函数#include <csl_adc.h> Uint32 adc_sample_value ...

  2. (80)ADC采集方法(基于LVDS采集方法)

    1.1 ADC采集方法(基于LVDS采集方法) 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)ADC采集方法(基于LVDS采集方法): 5)结束语. 1.1.2 本节引 ...

  3. LPC1768 双通道ADC采集数据并发送

    实验需要用到两个ADC同时采集电压信号.LPC1768有8个通道的ADC,这次实验中使用了P0.23引脚的AD0[0]和P0.26引脚的AD0[3].在实验中用的是uCOS-II操作系统,设计了两个任 ...

  4. STM32F103C8T6多通道adc采集(3通道)

    本程序采用STM32F103C8T6的3通道adc采集,其中为PA1(ADC1,ch,1,),PA2(ADC1,ch,2,),PA3(ADC1,ch,1,) adc.c文件 #include &quo ...

  5. 基于STM32F4:多通道ADC采集,采用DMA的形式,亲测有效

    基于STM32F4的多通道ADC采集 单片机源程序如下: #include "sys.h" #include "delay.h" #include " ...

  6. 基于STM32F407使用ADC采集电压实验

    核心板:STM32F407 实验目的:使用ADC采集电压值将其打印在串口助手上 目录 ADC简介 STM32F407 ADC通道对应的引脚 STM32F407中的数据寄存器 ADC 规则数据寄存器 ( ...

  7. STM32 F446RET6多通道ADC采集

    本次配置是根据STM32CUBEIDE去开发的 DMA搬运数据规则 使用DMA搬运数据的时候我们会先建立一个数据缓冲区,将DMA采集的数据存放到数据缓冲区内.采集到的ADC的值根据通道的顺序一个一个的 ...

  8. STM32L0系列之ADC采集

    STM32L0开发系列--01 ADC采集 前言 使用芯片:STM32L051C8T6 软件平台:KEIL V5.STM32CubeL0 库函数:HAL 一.原理图 本文介绍在STM32上使用ADC1 ...

  9. STM32 - ADC采集电压 中断处理

    一.参考电压 VDD接入电压为3.3V ADC供电要求:2.4V到3.6V 注意:STM32的100脚以上(含100脚)有参考电压引脚.在没有参考电压引脚的单片机上,可以把基准电压芯片接入VDDA,但 ...

最新文章

  1. 什么是指针?什么是数组?指针和数组的关系?
  2. ViewPager用法
  3. leetcode-217-存在重复元素
  4. 在AspNetMvc中使用日志面板. Logdashboard 1.1beta
  5. CCNP-第五篇-OSPF高级版(二)
  6. 如何优化大规模推荐?下一代算法技术JTM来了
  7. 局部变量是线程安全的,原因是什么
  8. LXC与宿主机共享目录(七)
  9. 【每周更新】OpenWrtLEDE精品软路由x86/64稳定版固件下载
  10. ubuntu设置分辨率
  11. Science子刊:利用DTI和NODDI纵向研究揭示轻度脑外伤后的白质微结构改变
  12. 魔兽、星际和红警的比较
  13. phpnow升级mysql版本_phpnow1.5.6-1升级phpmyadmin,php及mysql版本
  14. Dest0g3 520迎新赛部分WP
  15. Linux压缩命令gzip, bzip2和tar
  16. 智能客服机器人的场景应用及功能有哪些
  17. 【重要通知】红帽RHCE7.0版本考试即将下线
  18. [建立基类Building,作为楼房类,这个基类中包含楼房层数、房间数、楼房总面积等。再建立派生类Home_Arch、Office_Building和Hospital,分别作为住宅楼类、办公楼类和医院
  19. 我的毕业四年总结及对未来的期许!
  20. macOS 和 Linux 有什么区别?

热门文章

  1. linux proftpd mysql_proftpd mysql quota 配置完全指南
  2. android登录实现回显用户名和密码
  3. 如何实现WiFi下计算机互相访问,如何让两台笔记本电脑在无线连接下互相投屏...
  4. Three.js学习七——播放模型动画时模型沿着轨迹移动
  5. python人民邮电出版社_人民邮电出版社 - 主页
  6. python绘制分形图基础_python绘制分形图
  7. 电解电容(钽电容和吕电容)
  8. php ar技术,vr和ar是什么技术,有什么区别
  9. BF(暴力)算法详解
  10. 小鹤双拼提速方法个人经验-by老随风