首页 > 其他分享 >利用 STM32 TIMER 触发 ADC 实现分组转换

利用 STM32 TIMER 触发 ADC 实现分组转换

时间:2024-03-17 09:00:10浏览次数:30  
标签:触发 转换 结果 TIMER STM32 ADC 通道

1、问题描述

使用 STM32G4 系列芯片开发产品,用到其中一个 ADC 模块的多个通道,他希望使
用 TIMER 来定时触发这几个通道的转换。不过他有两点疑惑。第一,他期望定时器触发这几个
通道是每触发一次则只转换一个通道,这样依次触发转换,而不是触发一次就把几个通道都转换
完结。他不知这样是否可行?第二,既然是 TIMER 每触发一次就转换一次,如果说某个通道正
在转换时来了触发,这个触发事件是否会丢失?是否会导致最终转换的数据混乱。

2、问题分析

先说他的第一问题。多个通道进行转换,定时器每触发 1 次则转换 1 个通道,这是可以做到
的。我们可以采用 ADC 模块的间断分组转换模式,我们可以指定每次启动 ADC 所需要转换的通
道数。比方现在用到 6 个 ADC 通道需要做转换,我们可以指定每次触发启动时转换 2 个通道,
这样 3 次触发后 6 个通道即告完成 1 轮转换。这里截取 STM32G4 系列参考手册有关 ADC 规则
通道实施间断转换【或称非连续转换】的相关描述如下:
图 1、STM32G4 ADC 间断转换模式介绍截图
在这里插入图片描述
具体到客户的需求,他希望每次触发只转换 1 个通道,我们在配置时将上面截取信息中的 n
设置为 1 即可。
现在说他的第2个问题。当某通道正在进行ADC时,此时出现的触发事件是否会被无视掉,
其实是会的。ADC 模块并没有对外来触发事件提供缓冲能力,针对这点,在各个系列的参考手册
上都明确的描述。我下面截取了几个系列的相关描述如下几幅图所示。
图 2、有关 ADC 转换时出现触发事件的处理情形
在这里插入图片描述
如果出现触发事件被忽略掉,在多通道间断转换模式下,是否会出现转换数据的混乱呢,按
理不会出现,因为只是有些触发事件被无视掉了,ADC 的转换顺序并没有乱,这个顺序没乱,结
果就不该乱。

3、结果验证

我们不妨使用 STM32G474 芯片做下相关验证,看看当 TIMER 触发事件的速率快到一定程
度时是否会出现触发事件被无视、转换结果是否混乱。这里使用片内两个 ADC 专用通道,一个
是测试

标签:触发,转换,结果,TIMER,STM32,ADC,通道
From: https://blog.csdn.net/u014319604/article/details/136759716

相关文章

  • STM32第九节(中级篇):RCC(第二节)——讲解系统时钟配置函数SetSysClockTo72
    目录前言STM32第九节(中级篇):RCC(第二节)——讲解系统时钟配置函数SetSysClockTo72代码内容位置及检索分析代码 代码展示时钟控制使能闪存控制寄存器配置AHP,APB1,APB2的总线时钟配置锁相环时钟 超频操作小结前言    上节课我们讲了理论部分,那么我们这节课......
  • 【课设】/【毕设】ESP32上传温湿度至新版Onenet云平台并由新版Onenet云平台下发命令控
    一、uniapp设计  1、APP生成token秘钥:  1.1.下载HBuider软件:     直接搜索HBuider,进入官网下载软件:  2.新建项目-选择默认模版3.打开index.vue4.点击运行至内置浏览器;2.1获取Onenet云平台API接口 2.1.1进入Onenet云平台点击服务与支持-文档......
  • STM32F105双路隔离型CAN总线转4G控制板 - 把CAN数据发送到TCP服务器,实现通过TCP透传
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/product/STM32F105_2CAN/index.html"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p>......
  • STM32CubeMX没有生成Keil工程问题
    1. Project中选择IDE为MDK-ARM 2.你可能没有联网,所以在GENERATECODE时没有弹窗提示需要下载stm32cube_fw_XXX.zip软件包,根据提示登录(没有账号就注册一个)后按提示下载对应软件包即可,下图为下载中的stm32F4xx软件包。  安装后,重新GENERATECODE,即可生成MDK-ARM目录......
  • STM32入门(三):配置STM32项目环境
    配置STM32项目环境1. 选择合适的开发板首先我们需要选择一块合适简单的开发板,学习的板子选择stm32—f103系列板子。这一系列器件具有以下优势:性能:STM32F103F系列提供了一个强大的32位ARMCortex-M3内核,具有足够的处理能力来处理大多数嵌入式应用。外设丰富:这些芯片提供......
  • stm32-编码器测速
    一、编码器简介 编码电机 旋转编码器 A,B相分别接通道一和二的引脚,VCC,GND接单片机VCC,GND二、正交编码器工作原理1.计数方式 2.框图分析 由图可知,只有CH1和CH2有编码器接口,且编码器只用到了输入捕获结构体的输入滤波和边沿检测器,则其余的结构体成员都不......
  • Qt QObject::killTimer: timers cannot be stopped from another thread
    QObject::killTimer:timerscannotbestoppedfromanotherthread产生原因1定时器的事件处理所处的线程和调用定时器操作(方法)的线程不是同一个线程。2可以通过qDebug()<<QThread::currentThreadId()打印操作时的线程ID。解决思路把定时器的操作(方法:start(),sto......
  • XADC采集外部信号实时显示在RGB屏幕中
    概述XADC在Xilinx7系列器件上可用。TheXADCisavailableinallArtix-7,Kintex-7,Virte-7,andZynq-7000SoCdevices.XADC需要例化使用,但是如果使用JTAG访问的话,就不需要例化,直接在Vivado软件中就可以直接访问XADC的各项数据,包括芯片温度、电压等数据。The......
  • STM32G431RBT6LED灯02
    cubeMX根据引脚 选取这些引脚,设置为GPIO_Output除复用引脚之外的需要设置输出为HighLED控制语句<led.c>#include<led.c>voidLED_Disp(uchardsLED){HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOC,dsLED<<8,GPIO_PIN_RESET);HAL_G......
  • STM32标准库低功耗
    STM32标准库低功耗1.睡眠模式1.1.进入以及退出方法睡眠模式较为简单,仅需要简单调用函数即可,且函数定义处于内核层,不需要引用多余的头文件。睡眠模式:仅内核停止,所有外设仍旧运行。调用"__WFI()"函数,退出方式为任意中断。调用"__WFE()"函数,退出方式为唤醒事件。2.停......