HAL库STM32G0单通道ADC采样DMA传输定时器TIMER触发

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

这是一个能让你解放双手的ADC采样配置。因为你只需要在程序开始的时候配置好定时器、DMA、ADC,剩下的,就等着采集完成后在中断中处理AD相关数据就行了。 前面也写过STM32的基于DMA的AD转换功能,但不够完善。

STM32的ADC采样功能一直很强大,它又引入了DMA,同时定时器还能做为ADC开始转换的触发源,不得不说,真的好使!当然了,其它家的cotex-m核的MCU也有类似功能,这里只是以ST的芯片为例,做为演示。

本文实现的AD功能为:通过定时器每隔一段时间,自动触发ADC转换,并通过DMA自动把转换后的值存入某变量或数组,存储完成后触发中断。接下来说一下具体的配置和代码,以及调试时的注意事项。

一、创建工程

使用STM32CubeMX创建工程,芯片选择STM32G030F6Px。创建后,使能下载调试接口:SW。

二、时钟树配置

STM32G030系列,在使用内部RC做为时钟源的情况下,最高可以运行在64MHZ。这里,我们选择内部RC做为时钟源,默认16MHZ,然后使用PLL倍频使其达到64MHZ。

三、配置定时器3

如图所示,这里对定时器的时钟源(我们要用64MHZ)做了640分频,分频后频率为100KHZ。计数周期2000,在100KHZ频率下对应20ms。下面的:

Triger Event Selection TRGO :Update Event

表示,每次TIMER3计数溢出更新时,做为一个触发事件。

注意:这里虽然用到了定时器中断,但是TIM3中的NVIC Settings中的中断可以使能,也可以不使能。个人测试,都能实现效果。

四、ADC采样配置

4.1 DMA配置

这里使用ADC1的通道0来采集数据,使能通道0后,先把DMA功能打开。模式为循环,数据宽度为半字:Half Word。其它的,没什么要改的。如下图所示:

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值