学习笔记6-ADC电压采集2(CubeMX)


前言

在这里插入图片描述
常见的采集方式有两种,阻塞式非阻塞式的AD转换,各个AD转换通道可以实现单次,连续、扫描和间断四种模式。

1.阻塞式:轮询的方式读取

2.非阻塞式:中断方式和DMA方式

一、单通道任意时刻采集信号(不定时)

1、经典设置RCC

在这里插入图片描述
在这里插入图片描述

2、选择ADC通道+持续转换使能

在这里插入图片描述

Data Alignment : 对齐模式,可选左对齐和右对齐

Scan Conversion Mode:扫描转换模式是否开启

Continuous Conversion Mode:连续转换模式是否开启

Discontinuous Conversion Mode:不连续转换模式 是否开启
Enable Regular Conversions:是否使能转换

Number Of Conversion:转换的通道数

External Trigger Conversion Source:触发开始转换事件选择:

可选由软件或定时器触发采集

1、如果开启间断模式,每次需要先使用HAL_ADC_Start()或HAL_ADC_Start_IT(),HAL_ADC_Start_DMA()启动转换,需要使用HAL_ADC_PollForConversion()等待转换完成,HAL_ADC_GetState()获取ADC转换状态(若返回值为HAL_OK说明转换完成),转换完成后使用HAL_ADC_GetValue()读取ADC原始值,读取完成后,使用HAL_ADC_Stop()停止转换,如需再次获取ADC数据,需重复执行上述步骤。
2、如果开启连续模式,只需要使用一次HAL_ADC_Start(),开启转换,ADC会马不停蹄的电压转换成数字量,用户只需要调用HAL_ADC_GetValue(),读取ADC原始值。
3、间断模式的缺点:麻烦; 优点:节省系统资源,安全性更高。
连续模式会不断抛出DMA,IT中断,导致系统安全性降低
连续模式的优缺点和间断模式正好相反。

3、开启中断

在这里插入图片描述

4、开启USART

在这里插入图片描述

轮询采集不需要开启中断

二、DMA+单通道ADC

1-4同上在这里插入图片描述

5、添加DMA通道并选择对应的ADC通道

在这里插入图片描述

三、DMA+多通道ADC

依旧基础设置…

1、打开多通道并配置ADC

在这里插入图片描述

2、配置ADC

在这里插入图片描述

3、添加DMA

在这里插入图片描述

四、多通道ADC(非DMA和中断方式)

老规矩配置时钟等
在这里插入图片描述
在这里插入图片描述
经过其他博主的测试,要想用非DMA和中断模式只有这样配置可以正确进行多通道转换:扫描模式+单次转换模式+间断转换模式(每个间断组一个通道)。

五、定时器触发转换(1khz)+DMA传输

基础操作 老规矩~

1.关闭ADC持续转换并选择定时器触发模式

在这里插入图片描述

2.打开定时器时钟并配置PWM模式

在这里插入图片描述

3.配置定时器频率

在这里插入图片描述

4.添加DMA

在这里插入图片描述

注意事项:1、Debug记得勾选sw!
		 2、要打开多个通道(>1)才能在扫描模式这一选项中使能!

参考自:12345

如有错误,还请多多包涵。


  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChristianLuu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值