STM32 ADC --- 知识点总结

STM32 ADC --- 知识点总结

文章目录

cubeMX中配置注解

  • cubeMX配置时,如果配置了多个转换通道,会自动将扫描模式配置为Enabled。

单次转换模式、连续转换模式、扫描模式

单通道采样的情况

例如:我们只配置了一个采样通道CH0
在只配置一个通道的情况下,扫描模式是不起作用的,因而对于单通道采样情形,只有下面两种情况:

单次转换模式:

每启动一次转换一次通道CH0

连续转换模式:

启动ADC后,便会一直转换通道CH0,在每次转换结束后如果没有及时将数据寄存器中的值读出来,会触发溢出(OVR)错误。(触发OVR错误后可以通过清除OVR标志位,并重新启动ADC采样的方式恢复)

多通道采样的情况

例如:我们配置了采样通道CH0和CH1

在使用多通道采样的情况下一般都会使能扫描模式,下面的讨论中我们也会分析下禁止扫描模式的情况。

这里我们首先要区分清楚连续转换模式扫描模式的作用:

  • 扫描模式:将配置的序列寄存器中所有的通道依次采样一遍。
  • 连续转换模式:在所有的通道采样结束后再次重新开始采样。
禁止扫描模式(单次转换模式或连续转换模式)

:这种情况其实和上面单通道采样情况是一样的,虽然配置了多个通道,但实际转换时只会转换第一个通道。

单次转换模式+扫描模式

这种模式是将序列寄存器中配置的所有通道扫描一次

c 复制代码
  hadc1.Init.ScanConvMode = ENABLE; //扫描模式
  hadc1.Init.ContinuousConvMode = DISABLE; //单次转换模式

实例可参考:STM32 ADC --- 多通道序列采样

连续转换模式+扫描模式

这种模式是将序列寄存器中配置的所有通道扫描一次,然后再重新扫描,一直重复。

这种情况最好使用DMA,否则容易触发数据溢出错误。

实例参考:STM32 ADC --- DMA采样

相关推荐
chao1898445 小时前
STM32 HAL库驱动AT24C02 EEPROM例程
stm32·单片机·嵌入式硬件
猫猫的小茶馆7 小时前
【Python】函数与模块化编程
linux·开发语言·arm开发·驱动开发·python·stm32
feifeigo1237 小时前
STM32矩阵键盘驱动(库函数版)实现
stm32·矩阵·计算机外设
嵌入式小站8 小时前
STM32 零基础可移植教程 05:按键消抖,为什么按一次会触发好几次
chrome·stm32·嵌入式硬件
拾知_H9 小时前
STM32/Delay延时函数编程思路
stm32·单片机·时钟·延时
2zcode10 小时前
基于STM32的智能扫地机器人设计与实现
stm32·嵌入式硬件·机器人
jllllyuz11 小时前
单相并网逆变器控制代码实现(STM32版)
stm32·单片机·嵌入式硬件
追兮兮14 小时前
告别手动搭建Keil工程!MCUQuickStart一键生成STM32/GD32工程模板,打开即编译
stm32·单片机·嵌入式硬件·gd32·keil5
山木嵌入式15 小时前
STM32串口不定长数据接收:超时解析法+DMA+空闲中断法(附完整代码)
stm32·单片机·串口·uart
深圳市晨芯阳科技有限公司15 小时前
HC7253晨芯阳高端电流检测降压LED恒流驱动器
stm32·单片机·嵌入式硬件·驱动ic·深圳市晨芯阳科技有限公司