|
STM32 ADC模拟看门狗及其应用 前言 模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高低阈值,用户可以预先设定个模拟看门狗的上下限电压值,一旦采集到的电压超出该上下限,将会触发模拟看门狗中断。模拟看门狗一般用于检测单个的常规或注入转换通道,或同时检测所有的常规和注入通道。 模块框图
模拟看门狗可以预先设置ADC转换的高低阈值,ADC_HTR寄存器来配置ADC转换的上限阈值,ADC_LTR寄存器用来配置ADC转换的下限阈值。 应用示例 ADC配置代码
如上图所示,AnalogWDGConfig结构体中分别使能了模拟看门狗及中断,设置了电压的上下阈值HighThreshold和LowThreshold。模拟参考电压为3.3V,以上代码设置的下限电压阈值为3.3*1/8=0.41V,上限电压阈值为3.3*5/8=2.06V。 模拟看门狗中断服务程序
当模拟看门狗检测到电压高于上限或者低于下限时将会产生看门狗中断,中断服务程序触发后,可以做出一些应对措施。这里置了ubAnalogWatchdogStatus标志,然后由主程序去根据标志的值去执行相应处理程序。
启动ADC转换代码
使用循环模式DMA启动ADC转换,DMA可以降低CPU负载。 结论 控制系统中,需要测量严格电压、压力、温度等范围的信号,使用模拟看门狗能够快速地检测到异常状况,并做出相应的应对措施,以确保设备安全。 文档下载 更多实战经验 |
STM32
超强工具——STM32CubeMX 你会用吗?
集结出发! STM32全国研讨会系列之一:ST智能门铃中国首秀
关于STM32启动文件的几个小问题
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
STM32L151进入低功耗,并由RTC唤醒的故事
[转]stm32控制NFC模块(PN532)源码(P2P,模拟卡,读写卡等
STM32G070RB+LVGL移植
微信公众号
手机版
“如上图所示,AnalogWDGConfig结构体中分别使能了模拟看门狗及中断,设置了电压的上下阈值HighThreshold和LowThreshold。模拟参考电压为3.3V,以上代码设置的下限电压阈值为3.3*1/8=0.41V,上限电压阈值为3.3*5/8=2.06V。”
但是我在STM32CubeMX中,HighThreshold和LowThreshold的取值范围只能是0-4095
描述如下:
* High Threshold HighThreshold must be between 0 and 4 095. * This parameter has automatically changed after your last modification.
前辈请问一个问题,我刚上手单片机,现在想实现一个ADC检测输入电压的功能,选择了连续检测的方式,连续进行对输入管脚模拟电压的检测,检测到某一电压值就中断或者用其他方式暂停转换,串口打印信息,然后再在程序里开启下一段转换,请问这样用看门狗功能可以实现吗?
还有一个问题就是您说的看门狗高低阈值的设定问题,如果是0到4095之间,是否意味着我输入模拟的阶数即可,不需要转换成二进制?(就是把模拟电压3.3V分成4096阶,输入v/3.3*4096即可?)
很抱歉,这个功能我还没有实际试用过。回答不了你。
只是当时我看到这个功能想试用一下,用STM32CubeMX配置的时候发现有这个问题。