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

发布者:legend8最新更新时间:2023-09-04 来源: elecfans关键字:STM32  ADC  模拟看门狗 手机看文章 扫描二维码
随时随地手机看文章

我们在做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次中断,显然我们可以根据中断次数进一步判断一轮转换下来的异常通道数。


关键字:STM32  ADC  模拟看门狗 引用地址:STM32 ADC模拟看门狗应用演示过程

上一篇:基于STM32单片机的简易电子琴设计(1)
下一篇:基于STM32和HAL库创建一个IIC设备

推荐阅读最新更新时间:2024-11-06 10:34

单片机PWM波(AT89C51、ADC0808)
一、简介 此电路由AT89C51最小系统和ADC0808组成。 二、运行效果 三、代码 /*想要更多项目私wo!!!*/ #include reg52.h #define uint unsigned int #define uchar unsigned char sbit CLK = P2^4; sbit ST = P2^5; sbit EOC = P2^6; sbit OE = P2^7; sbit PWM = P3^0; void DelayMS(uint ms) { uchar i; while(ms--) { for(i=0;i 120;i++); } } voi
[单片机]
单片机PWM波(AT89C51、<font color='red'>ADC</font>0808)
STM32开发笔记63: 在LwIP中不使用MicroLIB
单片机型号:STM32F407VGT6 文章STM32开发笔记62: 使用MicroLIB介绍了microLIB的使用方法,如果在项目中使用LwIP的话,默认是使用microLIB的,如果不勾选microLIB选项,则程序不能够正常运行,其主要原因在于LwIP使用了microLIB提供的标准输入和输出函数。但是,非常遗憾的是microLIB不支持C++,如果在应用程序中希望使用C++进行程序设计,则不能勾选microLIB,否则在链接的时候会出现问题,本文提供解决这一问题的方法。 不勾选microLIB,keil将使用标准C库函数进行链接,这就需要我们提供相应的低层支持才可以。ARM公司提供了相应的模版,我们可以通过htt
[单片机]
STM32系列第24篇--485通信
串口是一种接口标准,它规定了接口的电气标准,简单说只是物理层的一个标准。没有规定接口插件电缆以及使用的协议,所以只要我们使用的接口插件电缆符合串口标准就可以在实际中灵活使用,在串口接口标准上使用各种协议进行通讯及设备控制。典型的串行通讯标准是RS232和RS485,它们定义了电压,阻抗等,但不对软件协议给予定义。 RS232接口缺陷: 传输速率较低,在异步传输时,波特率为20Kbps。接口的信号电平值较高(+/-12V),易损坏接口电路的芯片。 传输速率较低,在异步传输时,波特率为20Kbps。 接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。 传输距离有限,最大传
[单片机]
<font color='red'>STM32</font>系列第24篇--485通信
STM32HAL库控制TIM点亮led
参考视频是小熊派的 开发板 : 【STM32单片机学习】白嫖单片机教程——手把手带你学习STM32L系列单片机(HAL库) 首先要知道公式: 定时器时间=1/(时钟频率/预分频/计数周期) 然后了解定时器的时钟由谁供给,以STM32F103ZET6为例,查他的时钟总线资料,发现有APB1、APB2都有了解定时器的: 由图可知,TIM2的时钟由APB1提供。 简单来说 就是APB2提供高级定时器–定时器1和定时器8的时钟。 APB1提供定时器2到7的时钟,看你需要哪一个了,其对应的是CubeMX的这里: 以TIM2为例: 根据公式:定时器时间=1/(时钟频率/预分频/计数周期) 我们要一个一秒钟的定时时间
[单片机]
STM32HAL库控制TIM点亮led
电力数据采集A/D转换器的选择方案
   0 引 言   当今社会对 电能质量 的要求越来越高,国家还专门制定了 电能质量 的国家标准。因此, 电能质量 的测量越来越得到电力用户的重视。电能测量时,从电网的数据采集结果对其精度的影响起着致关重要的作用,而这其中影响最大的是把模拟信号转换为数字信号的模数转换器( ADC ),往往A/D芯片的技术参数和指标就决定了整个数据采集系统的性能指标。本文就电能测量 ADC 的选择作了综述。    1 A/D转换器 的技术参数    A/D转换器 的技术参数反映了其性能特点,其主要的指标有以下几个:   (1)分辨率:分辨率反映 A/D转换器 对输入微小变化响应的能力,通常用数字输出最低位(LSB)所对应的模拟输入的电平值
[模拟电子]
STM32开发 -- 添加头文件
其实很简单,设置 target里的 include paths 但是编译还是不对,其原因是应将该头文件包含在其他文件里。
[单片机]
<font color='red'>STM32</font>开发 -- 添加头文件
stm32之看门口介绍
今天在学习mpu6050的时候,发现程序出现了看门狗的程序,其实这个在学习51的时候就应该了解的,但是我并没有去了解。导致现在学习32,其实就是在补之前的51。 首先,我想把文章最后一句放到开始写出来:总结一下,就个人观点来说,看门狗并不是特别需要的,是否需要在程序中加看门狗模块就具体的程序实现而定。 好了,下面就介绍一下何为看门狗。 stm32自带两个看门狗模块,独立看门狗IWDG和窗口看门狗WWDG。主要作用是——可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。 具体的实现步骤:开启看门狗,设置减计数的初始值,当计数值达到超时值时,产生MCU复位
[单片机]
STM32 PWM问题
本文不提供完整程序,仅点出要点 1:时钟配置。因为PWM输出属于复用功能,所以时钟使能必须使能RCC_APB2Periph_AFIO ; 2:IO口使能。因为PWM属于复用功能,所以IO输出设置要配置成GPIO_Mode_AF_PP;而不能配置成普通输出IO的GPIO_Mode_OUT_PP模式; 3:PWM初始化代码如下,本程序只用通道3输出,所以pwm输出只配置了通道3,TIM_OC3Init(TIM3, &TIM_OCInitStructure);需要多通道输出PWM则需要配置多个PWM输出通道,通过改变TIM_Pulse 的值可以改变pwm的占空比(可以通过直接操作寄存器TIM3- CCR3=2400来实现)。 /* Ti
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved