【问题标题】:Interrupt service routine for watchdog timer on STM32 DiscoverySTM32 Discovery 上看门狗定时器的中断服务程序
【发布时间】:2014-10-09 10:48:21
【问题描述】:

我最近购买了一个 STM32 超值系列探索套件,用于与 STM32 设备配合使用。我现在正在做一个需要看门狗的项目。它在STM32中称为IWDG。但我的问题是当看门狗被触发时我需要一个 ISR。

有谁知道如何实现这个(甚至有一个例子)?

【问题讨论】:

  • 我确实做到了,大约一个星期了,但我找不到它,所以我想知道它是否可能。
  • 我只是在寻找不会立即重置微控制器的东西。它只需要在重置之前执行一些关机操作。
  • 为什么需要 ISR?看门狗旨在在经过一定时间后执行硬件复位。您只需激活一次,然后每隔一定时间重置一次(小于执行硬件重置之前花费的时间)。
  • 看门狗的全部目的是在出现“严重错误”时硬重置您的设备。那时,您应该假设没有任何东西可以保证正常工作,因此您不能“在重置之前执行一些关机操作”。可以这样想 - 软件不再工作,唯一要做的就是重置硬件。
  • 现在,如果你还想要几个函数来激活看门狗和重置它,那么请挥动一面高高清晰的白旗,这样我就可以看到它(大克里斯,Lock Stock )。

标签: c stm32 watchdog isr stm32ldiscovery


【解决方案1】:

需要看门狗,因为看门狗的全部目的是在软件挂起时强制重置。

对我来说,你所追求的更像是一个高优先级的常规定时器中断。

设置它,以便您定期重新启动计时器(及时推动中断事件生成),这样中断通常不会发生。

【讨论】:

  • 好的,谢谢。现在很清楚了。但就我而言,微控制器需要为 DSP 供电并以正确的方式将其关闭。它还必须查看是否有任何电源故障。如果有,则需要关闭 DSP。但是假设微控制器的软件挂起并且发生电源故障。它不能以正确的方式关闭它,可以吗?那么我该如何编程这种情况呢?重置微控制器不是一个好选择,因为它也会重置一些重要引脚的值......
  • @LarsJansen:DSP 恰好是 MSP430?
  • @LarsJansen 我认为您可以在软件中做的最好的事情是拥有一个高优先级(“不可屏蔽”)中断来进行监督,并关闭 DSP,也许还有 STM如果检测到故障。如果您确保没有任何禁用中断的代码,它会非常安全。
  • @unwind 好的。所以你说(据我所知)我需要一个中断(而不是 while 循环)来进行电源故障检查。
  • 但是说我的STM挂了。中断也会挂起,不是吗?
【解决方案2】:

有两个看门狗(至少对于 stm32s10x)。

IWDG,它是独立的,没有isr就重置stm。

WWDG(窗口看门狗),它在重置 stm32 之前有一个 isr 1 滴答。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多