0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32 ADC模拟看门狗应用演示过程

茶话MCU 来源:茶话MCU 2023-07-08 14:30 次阅读

我们在做ADC应用时,有些场合需要精确测量出待测信号的数据,有时可能并不关心ADC结果多准确,只要满足某个范围即可,这时我们就可以考虑使用STM32ADC看门狗功能了。

STM32 ADC基本上都支持模拟看门狗功能,即ADC模块对被检测的模拟通道的转换结果基于硬件对其合法性、安全性进行监测。我们可以设置被监测通道的转换结果合法性检查的上下阈值,若结果处于阈值之外则视为异常,并可以触发中断。

尤其有些场合,我们可能使用到数个ADC通道,8个、10个甚至更多,同时程序还需要基于各通道的转换结果进行合法性或安全性监测,此时使用ADC模拟看门狗功能就很方便。我们可以先让模拟看门狗做第一步把关,只有出现异常数据时才去进一步检查确认。不然的话,每次一批数据出来后,我们得逐个去检查合法性。

一般来讲,多数情况下异常可能只是偶尔、个别通道发生,这样每次转换完成后总是不分青红皂白地去逐一检查、确认,显然有点浪费时间,啰嗦无益,这也会影响系统性能。

我这里使用STM32L4开发板,简单演示下实现过程,供有需要的人士参考。

这里只开启ADC1模块的8个规则通道,使用DMA传送转换结果,并设置模拟看门狗。使用CubeMx图形化配置工具进行工程配置。

30eb9818-1d58-11ee-962d-dac502259ad0.png

我只启用了模拟看门狗1,针对8个规则通道的转换结果进行实时监测。

【当然你可以有其它更为灵活的设计。各个STM32系列这个地方不完全一样。】

313abb3c-1d58-11ee-962d-dac502259ad0.png

开启ADC模拟看门狗的中断。

315c063e-1d58-11ee-962d-dac502259ad0.png

代码里设置一个记录ADC结果异常的标志Flag_ADC_Abnormal,若发生结果异常会在ADC中断对该标志变量赋非0值。

31b81e60-1d58-11ee-962d-dac502259ad0.png

在主循环里若发现异常标志非0,然后去进一步做所有ADC结果的确认。

31f44110-1d58-11ee-962d-dac502259ad0.png

上面演示过程中监测到一个异常数据,触发了模拟看门狗中断,ADC结果异常标志被赋0xff值,会做进一步异常数据的确认。

我在上面采样的一个模拟看门狗对8个通道的结果进行监测,如果一轮扫描转换下来出现多个异常数据,会触发几次中断呢?

不妨基于同一开发板验证下。我加个ADC中断次数累计变量ADC_Res_CNT,并把阈值下限调整为1200,其它不动。【见下图】

3221d634-1d58-11ee-962d-dac502259ad0.png

然后进行测试,得到下面结果。

324cb728-1d58-11ee-962d-dac502259ad0.png

从结果看,除了2个数据正常外其它均异常,故一轮转换下来发生了6次中断,显然我们可以根据中断次数进一步判断一轮转换下来的异常通道数。

【注:这里ADC配置为单次扫描模式,DMA配置为Normal模式。】






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 看门狗
    +关注

    关注

    10

    文章

    541

    浏览量

    70257
  • STM32
    +关注

    关注

    2240

    文章

    10674

    浏览量

    348788
  • dma
    dma
    +关注

    关注

    3

    文章

    535

    浏览量

    99027
  • 模拟器
    +关注

    关注

    2

    文章

    818

    浏览量

    42698
  • ADC采样
    +关注

    关注

    0

    文章

    125

    浏览量

    12710

原文标题:STM32 ADC模拟看门狗应用演示

文章出处:【微信号:stmcu832,微信公众号:茶话MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32F103RBT6的ADC模拟看门狗中断的报警红灯亮起

    本人用STM32F103RBT6 的 ADC 1模块的通道14 对外部的电压进行连续检测, 当中用到了DMA1传输。为了对电压的极限范围进行监测,用了ADC1模块中的模拟
    发表于 09-21 09:22

    STM32窗口看门狗和独立看门狗的区别,看门狗介绍及代码演示 精选资料分享

    一、介绍:STM32看门狗分为独立看门狗和窗口看门狗两种,其两者使用调条件如下所示,IWDG和WWDG两者特点如下图所示: 独立看门狗的手册
    发表于 07-22 06:41

    模拟看门狗

    [STM32F1官方例程讲解2] 模拟看门狗第一章 模拟看门狗简介第二章 STM32F1
    发表于 08-02 08:43

    STM32CubeMX配置ADC模拟看门狗实现掉电保存——基于(STM32G070+STM32CubeMX+HAL库+ADC模拟看门狗) 精选资料分享

    实验目的:通过STM32CubeMX进行简单配置生成HAL库实现ADC模拟看门狗,以达到单片机掉电保存Flash。一、STM32CubeMX
    发表于 08-02 06:05

    【转载】STM32窗口看门狗和独立看门狗的区别,看门狗介绍及代码演示 精选资料推荐

    找到一个看门狗的详细介绍,特此记录。一,介绍STM32看门狗分为独立看门狗和窗口看门狗两种,其两者使用调条件如下所示:IWDG和WWDG两者
    发表于 08-02 09:29

    一文读懂什么是模拟看门狗

    什么是模拟看门狗STM32F1模拟看门狗相关配置函数有哪些?如何去配置STM32F1
    发表于 08-16 06:10

    HAL库是如何实现ADC从而去模拟看门狗

    怎样通过STM32CubeMX进行简单配置生成HAL库?HAL库是如何实现ADC从而去模拟看门狗的?
    发表于 08-20 07:22

    STM32芯片的模拟看门狗是怎么回事呢

    什么是看门狗STM32芯片的模拟看门狗是怎么回事呢?与独立看门狗有关系吗?它是怎么工作的?
    发表于 09-18 08:41

    ADC是如何模拟看门狗中断开关的

    ADC是如何模拟看门狗中断开关的?怎样去编写模拟看门狗的配置函数?
    发表于 09-23 07:42

    stm32看门狗的喂狗过程是怎样的?

    独立看门狗的作用是什么?stm32看门狗的喂狗过程是怎样的?
    发表于 01-18 07:05

    模拟看门狗是什么

    如下:  下面直接通过代码来演示一下这个模拟看门狗的功能:#include "adc.h"#includ
    发表于 01-27 07:19

    STM32 ADC模拟看门狗及应用

    模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高低阈值,用户可以预先设定个模拟看门狗的上下限电压值,一旦采集到的电压超出该上下限,将会触发
    发表于 09-08 06:26

    STM32芯片如何使用片内参考电压实现模拟看门狗

    STM32芯片的ADC模块往往都支持模拟看门狗功能,即可以对单个或多个通道开启模拟转换值的监测。当模拟
    的头像 发表于 08-29 16:16 6123次阅读
    <b class='flag-5'>STM32</b>芯片如何使用片内参考电压实现<b class='flag-5'>模拟</b><b class='flag-5'>看门狗</b>

    STM32 ADC模拟看门狗及其应用

    STM32 ADC模拟看门狗及其应用(电源技术期刊是什么级别期刊)-模拟看门狗特性允许应用程序检
    发表于 08-04 18:12 29次下载
    <b class='flag-5'>STM32</b> <b class='flag-5'>ADC</b><b class='flag-5'>模拟</b><b class='flag-5'>看门狗</b>及其应用

    STM32 ADC模拟看门狗过程实现

    我们在做ADC应用时,有些场合需要精确测量出待测信号的数据,有时可能并不关心ADC结果多准确,只要满足某个范围即可,这时我们就可以考虑使用STM32ADC看门狗功能了。
    的头像 发表于 07-13 10:28 2206次阅读
    <b class='flag-5'>STM32</b> <b class='flag-5'>ADC</b><b class='flag-5'>模拟</b><b class='flag-5'>看门狗</b><b class='flag-5'>过程</b>实现