STM32单片机ADC的模拟看门狗的测试

发布者:EnchantedMelody最新更新时间:2024-05-13 来源: elecfans关键字:STM32  单片机  ADC  模拟看门狗 手机看文章 扫描二维码
随时随地手机看文章

ADC的模拟看门狗用于检查电压是否越界。他又上下两个边界,可分别在寄存器ADC_HTR和ADC_LTR中设置。库函数是使用ADC_AnalogWatchdogThresholdsConfig设置的,无论是常规通道还是注入通道,都非常简单

STM32单片机ADC的模拟看门狗的测试

当模拟看门狗检测到电压高于上限或者低于下限时将会产生看门狗中断。捕获这个中断,可以做出一些应对措施。

数据手册上特别之处的一个东西:模拟看门狗说使用的比较数据与ADC_CR2寄存器中设置的数据对齐方式无关。看门狗比较是在数据对齐之前完成的。先进行看门狗比较,再将数据放入ADC_DR数据寄存器

在ST的库中,只有简单的三个与看门狗相关的函数:

void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx, uint32_t ADC_AnalogWatchdog);

void ADC_AnalogWatchdogThresholdsConfig(ADC_TypeDef* ADCx, uint16_t HighThreshold,uint16_t LowThreshold);

void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel);

使用ADC_AnalogWatchdogThresholdsConfig设置触发看门狗的上下限

使用ADC_AnalogWatchdogSingleChannelConfig配置要使用模拟看门狗的通道

配置完成后使用ADC_AnalogWatchdogCmd启动模拟看门狗。

我写的函数很简单,就这么三行。将模拟看门狗加在ADC1的CH1上。代码如下:

void ADC_WatchdogConfig(void)

{

ADC_AnalogWatchdogSingleChannelConfig(ADC1,ADC_Channel_0);

ADC_AnalogWatchdogThresholdsConfig(ADC1,1500,0xFFF);

ADC_AnalogWatchdogCmd(ADC1,ADC_AnalogWatchdog_SingleRegEnable);

}

NVIC中初始化模拟看门狗:

void NVIC_Config(void)

{

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置中断优先级分组

NVIC_InitStructure.NVIC_IRQChannel = ADC_IRQn;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x01;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00;

NVIC_Init(&NVIC_InitStructure);

}

捕获看门狗中断:

void ADC_IRQHandler(void)

{

ADC_ITConfig(ADC1,ADC_IT_AWD,DISABLE);

if(SET == ADC_GetFlagStatus(ADC1,ADC_FLAG_AWD))

{

ADC_ClearFlag(ADC1,ADC_FLAG_AWD);

ADC_ClearITPendingBit(ADC1,ADC_IT_AWD);

printf(“ADC AWD is happened.rn”);

}

ADC_ITConfig(ADC1,ADC_IT_AWD,ENABLE);

}

当然,最后别忘了打开ADC的中断:

ADC_ITConfig(ADC1,ADC_IT_AWD,ENABLE);


关键字:STM32  单片机  ADC  模拟看门狗 引用地址:STM32单片机ADC的模拟看门狗的测试

上一篇:如何通过STM32驱动nRF24L01发送数据
下一篇:基于LinkedInSTM32F4时钟系统初始化设置

推荐阅读最新更新时间:2024-11-12 21:40

89C51单片机之外部中断0、1控制LED
1.proteus仿真图 2.keli代码 #include reg51.h sbit led1=P0^0; sbit led2=P1^0; //外部中断0控制程序 void INT0test() interrupt 0 { led1=~led1; } //外部中断1控制程序 void INT1test() interrupt 2 { led2=~led2; } int main() { EA=1; //全局中断使能 EX0=1; //外部中断0使能 EX1=1; //外部中断1使能 IT0=0; //外部中断0触发方式为低电平有效 IT1=1; //外部中断1触发方式为电平下降沿有
[单片机]
89C51<font color='red'>单片机</font>之外部中断0、1控制LED
【菜鸟入门】stm32的第一个程序--LED
经过今天一天的努力终于完成了我的stm32第一个程序;我也是今天才开始接触stm32。 由于苦于没有资料,木有例程,找到的例程都是带有库的,这样对stm32基础的管脚配置就不容易懂了,主要是没有一个具体的轮廓。 经过对库文件的研究,和看了好几节视频,又根据自己以前搞430和arm9的经验,就按着以前的思路进行研究,终于开发出自己的第一个LED程序; 1、创建工程 (1)Project -- New uvision Project (2)选择工程要保存的地方 (3)选择CPU (4)选择“是”(如果你使用从STM下载的库的话,就选“否”) (5)修改一下代码(如果不注视掉红色部分,会出现错误)
[单片机]
[单片机框架][bsp层][cx32l003][bsp_tim] TIM定时器配置和使用
TIM1 简介 高级控制定时器(TIM1)由一个 16 位的自动装载计数器组成,它由一个可编程的预分频器驱动。它适合多种用途,包含测量输入信号的脉冲宽度(输入捕获),或者产生输出波形(输出比较、PWM、嵌入死区时间的互补 PWM 等)。 使用定时器预分频器和 RCC 时钟控制预分频器,可以实现脉冲宽度和波形周期从几个微秒到几个毫秒的调节 TIM1 主要特性 TIM1 定时器的功能包括: ⚫ 16 位向上、向下、向上/向下自动装载计数器 ⚫ 16 位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为 1~65535 之间的任意数值 ⚫ 多达 4 个独立通道: 输入捕获 输出比较 PWM 生成(边缘或中间对齐模式)
[单片机]
意法半导体发布STM32 MCU图形界面设计软件TouchGFX 4.20版
STM32 用户界面设计环境新增屏幕旋转和纹理映射功能,支持性能强大的 Neochrom 图形加速器 中国,2022年8月16日---- 服务多重电子应用领域、全球排名前列的半导体公司意法半导体(STMicroelectronics,简称ST;) 公布了STM32 微控制器图形用户界面设计软件TouchGFX 4.20版。最新的软件更新支持意法半导体新推出的 Neochrom 图形加速器。新款图形加速器集成在意法半导体的先进微控制器产品中,例如STM32U5系列。 意法半导体 Chrom-ART Accelerator™ 图形加速技术可以处理像素和形状,源自这项技术的Neochrom支持全屏旋转到任何角度,并支持纹理
[单片机]
意法半导体发布<font color='red'>STM32</font> <font color='red'>MCU</font>图形界面设计软件TouchGFX 4.20版
STM32单片机的高精度超声波测距系统设计
一、系统组成 STM32单片机的高精度超声波测距系统的设计主要由STM32单片机、超声波发射电路、接受电路、补偿电路和软件等构成。该系统将STM32单片机作为整个系统的核心,通过协调各部分电路工作,进而实现高精度的超声波测距口。 二、系统硬件设计 1、超声波发射电路 超声波发射电路两个最主要的组成部分就是超声波探头和超声波激励电路。超声波探头不仅是超声波发射电路的一个重要组成部分,更是整个超声波测距系统的重要组成部分。它是超声波测距系统中用以发射或接受超声波信号的主要器件。超声波激励电路的基本工作原理是首先利用相应的机理信号对一特定形式的电压进行处理之后,将其加载到超声波探头上,然后再通过超声波探头压电晶片将其自身所具有的电能
[单片机]
MCU市场规模可望于2020年再创新高
IC Insights预期,在经历了近几年的价格下滑之后,微控制器(MCU)的平均销售价格(ASP)预期将会回温,并再创销售额新高纪录。 市场研究机构IC Insights预期,IC产业的原始系统级晶片(SoC)产品──微控制器(microcontrollers,MCU)市场的年营收规模,将在未来五年稳定成长并达到新高纪录,尽管该市场整体出货量成长将趋缓。 IC Insights指出,MCU市场销售额在2015年几乎没有成长,幅度不到0.5%,但金额规模却达到了略高于159亿美元的新高纪录,主要是因为MCU出货量成长了15%,在去年达到了221亿颗的高峰(如下图)。强劲的出货量成长──由智慧卡应用与32位元产品带
[单片机]
<font color='red'>MCU</font>市场规模可望于2020年再创新高
stm32教你如何编译出LIB文件
这个是生成LIB的技巧.也许大家在网上看到某些程序会发现,他们用这个方式来包含STM32 的库文件: 而不是像DX32的例程那样一堆C: 那么,本技巧篇例程就是教大家怎么生成那个.LIB 的文件的. 首先打开本程序,大家看到的整个工程就只有库文件: 因为这是把STM32的函数库编译成库的形式,所以你只需要包含函数库就行. 然后注意一点,stm32f10x_conf.h 文件中,所有的include都要开放 #include stm32f10x_adc.h #include stm32f10x_bkp.h #include stm32f10x_can.h #include stm32f10x_crc.h #i
[单片机]
<font color='red'>stm32</font>教你如何编译出LIB文件
小广播
设计资源 培训 开发板 精华推荐

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

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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