访问电脑版页面

导航:老古开发网手机版STM32单片机STM32单片机看门狗

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

导读:
关键字:
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.\r\n”);

}

ADC_ITConfig(ADC1,ADC_IT_AWD,ENABLE);

}

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

ADC_ITConfig(ADC1,ADC_IT_AWD,ENABLE);

来源:工程师周亮   作者:lhl545545  2018/11/27 16:49:00
栏目: [ STM32单片机看门狗]

相关阅读

STM32独立看门狗和低功耗模式_RTC定时唤醒来喂狗

一文读懂STM32之独立看门狗/窗口看门狗的原理

STM32F4 独立看门狗IWDG

STM32看门狗配置(独立看门狗IWDG和窗口看门狗WWDG)

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

STM32F4系列MCU独立看门狗IWDG的应用

STM32之独立看门狗与窗口看门狗总结

STM32F4 窗口看门狗WWDG

stm32独立看门狗和窗口看门狗的区别

STM32单片机中的独立看门狗与窗口看门狗有哪些不同之处

STM32独立看门狗和窗口看门狗应用的区别

stm32 窗口看门狗[操作寄存器+库函数]

STM32F0独立和窗口看门狗的功能解析

STM32单片机的模拟看门狗的库函数设置

STM32单片机的独立看门狗和窗口看门狗的特点及用法解析

STM32看门狗WWDG和IWDG的区别是什么

STM32独立看门狗IWDG与窗口看门狗WWDG研究

STM32F4学习笔记9——独立看门狗与窗口看门狗

STM32独立看门狗介绍_STM32单片机独立看门狗实验

STM32F103学习笔记(六) 独立看门狗and窗口看门狗