STM32H7 ADC hal库
文章目录
- 前言
- 一、配置
- 1. 时钟配置
- 2. ADC配置
- 3. DMA配置
- 二、工程
- 1 . ADC测试
- 三、FFT
- 1. 添加DSP库
- 2. 数据采集
- 总结
前言
使用STM32H750VB作为主控,使用stm32cubemx配置工程,在单通道对ADC通道进行采集,预计对通道采集1024次,然后对1024个数据进行fft。
一、配置
1. 时钟配置
在cubemx中配置,RCC中采用外部时钟,外部晶振分别为25MHz和32.768KHz。时钟树配置如下图所示:
ADC时钟频率为150MHz。
2. ADC配置
选用ADC3中的IN0,其他的不选,具体配置如下,根据下图计算采样率首先,ADC的时钟为150MHz,时钟分频8分频,然后采样时间为32.5个时钟周期,采样率约577KHz,实测采用8.5个时钟周期也可也,但是时采样率再高就不太行了。
3. DMA配置
DMA配置如下图所示,由于是连续采样DMA配置为循环模式,同样,在ADC的配置中的转换数据管理模式也要配置为DMA Circular Mode。数据宽度选择half byte,在Debug中选上串行线就行。至此在cubemx中的配置完成。
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、工程
1 . ADC测试
cubemx建立的工程已经包含了对各个部分的初始化,查看与ADC相关的函数。然后选择调用函数。首先进行对ADC的校准,如下所示。校准函数后面的两个参数可以在函数定义上面的注解中找到。
volatile HAL_StatusTypeDef status;
status=HAL_ADCEx_Calibration_Start(&hadc3,ADC_CALIB_OFFSET_LINEARITY, ADC_SINGLE_ENDED);
然后开启ADC采样,由于是使用DMA方式,所以调用HAL_ADC_Start_DMA函数。处理方式也一并写在下面所示的程序中。
volatile uint32_t result;
volatile float value;
status=HAL_ADC_Start_DMA(&hadc3, &result, 1);
value=(float)(result&0xffff)/65536*3.3;
调试时可以发现ADC的值可以连续被转换。
三、FFT
1. 添加DSP库
CMSIS包含了数字信号处理的一系列库,在Keil中添加比较方便,如下图所示。
DSP库的资料可以在keil安装目录中找到,如下图所示。
2. 数据采集
采集1024组数据,声明长度为1024的float数组后,当给数组赋值,程序会进入hardfault,发现是H750VB的flash或者ram不够。后面准备研究外部flash存储数据,如果是ram的问题那就没办法了。后面就只有研究FPGA进行数据处理了。
总结
在整个过程中,发现使用6.0及以上版本的编译器编译的速度比5.0版本的块很多诶。
STM32H7 ADC hal库相关推荐
- stm32 ADC hal库实现
stm32 ADC hal库实现 1.ADC的作用 (1)简介: ADC(Analog-to-Digital Converter),即模拟-数字转换器,可以将连续变化的模拟信号转换为离散的数字信号,进 ...
- 【BSP视频教程】STM32H7视频教程第3期:整体捋顺STM32H7的HAL库和LL库的框架,再配合寄存器造轮子找到更适合自己的玩法(2022-01-21)
视频教程汇总帖:[学以致用,授人以渔]2022视频教程汇总贴,持续更新中,DSP更新到第1期,ThreadX更新到第2期,BSP驱动更新到第3期(2022-01-21) - STM32F429 - 硬 ...
- STM32【H7】理论——综述、HAL库简述
文章目录 1. STM32H7芯片简介 1.1 STM32H7与STM32F1.F4系列芯片的区别 1.2 硬件框图 1.3 STM32H7各型号对比 1.4 总线框图和时钟 1.5 AXI总线 1. ...
- 学习笔记(1)stm32h743和ADXL355的SPI通信,基于cubeMX和keil5MDK平台,采用HAL库编程,代码已模块化处理
今天是一个特别的日子,为什么呢?哈哈,因为从大四做毕业设计的时候,接触CSDN,到现在一整年了,终于创作了我的第一篇博客,内心难念有些激动! 首先声明,我不是嵌入式领域的技术大牛,只是普通的研一新生, ...
- 【STM32H7教程】第63章 STM32H7的高分辨率定时器HRTIM基础知识和HAL库API
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第63章 STM32H7的高分辨率定时器HRTIM ...
- STM32H7时钟树RCC分析--- HAL库配置(二)
上一讲我们说了H7时钟树的一些基本概念,现在的话我们来用HAL库和CubeMx配置一下 再次说明,本文耗时较久,如果您想搞懂RCC初始化流程,请认真阅读,刚开始可能看不懂,但是仔细阅读之后绝对会有收获 ...
- 【STM32】HAL库 STM32CubeMX教程九---ADC
前言: 本系列教程将 对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 所用工具: 1.芯片: STM32F407ZET6/ STM32F103ZET6 ...
- 【STM32笔记】HAL库低功耗模式配置(ADC唤醒无法使用、低功耗模式无法烧录解决方案)
[STM32笔记]HAL库低功耗模式配置(ADC唤醒无法使用.低功耗模式无法烧录解决方案) [STM32笔记]低功耗模式配置及避坑汇总 一.低功耗模式简介 系统提供了多个低功耗模式,可在 CPU 不需 ...
- 【STM32H7教程】第70章 STM32H7的内部Flash基础知识和HAL库API
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第70章 STM32H7的内部Flash基础知识和 ...
最新文章
- labview曲线上两点画延长线_教你用直尺画各种几何图形
- mysql监控nginx_mysql和nginx服务是否正常监控脚本
- python进阶之多进程
- 高校里的“内卷”能有多少种操作?
- 中国天然饮料市场趋势报告、技术动态创新及市场预测
- 使用PXE+DHCP+Apache+Kickstart批量安装CentOS5.4 x86_64
- python和java哪个好找工作-你觉得学python还是java好找工作?
- python 计算流形上两点之间的测地距离
- Silverlight实现文件的下载[很简单]
- word2016添加题注|图注文献标号的交叉引用及引用的更新|添加不同类型的页码|文献自动编号|文献编号的自动引用|删除空白页
- 初探三维计算机视觉(三维重建) —— 相机模型 + 双目系统 + 点云模型
- matlab鼠标截取图像并显示_matlab图像剪裁命令imcrop()
- 手把手教您:iOS 6.1~6.12 完美越狱教程
- Qt - 跨平台程序打包发布
- ESP8266闪存文件系统基本操作-删除文件
- “数据分析师”招聘信息的数据分析
- Dominating Patterns UVALive - 4670 (ac自动机)
- 【Hackintosh】完善篇之添加节能5项与添加SMBU/SBUS
- 【Android Jetpack】Room——基本使用篇
- Cent OS 7.4 1708 下载安装
热门文章
- pythonif嵌套语句题目_python中if嵌套的练习题有哪些?
- CYY网页提取助手2.0绿色版正式发布
- Android Studio:Type mismatch: inferred type is Int but Unit was expected
- shell 分割文本_shell教程(2):积木游戏之认识积木--重要的系统命令
- Win系统 - 该扩展程序并未列在Chrome应用商店中怎么样办?
- Android微信分享之微信项目注册与申请
- 智慧树知到等各大网课搜题接口及搜题公众号搭建教程
- 【翻译】HCP: A Flexible CNN Framework for Multi-Label Image Classification
- oracle学习笔记(四)-- 数学函数
- html idv垂直居中,2011最新整理idv+css标准.doc