• 8-STM32 IWDG独立看门狗


    内部看门狗时钟驱动:

    STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动(LSI),即使主时钟发生故障,它也仍然有效。这里需要注意独立看门狗的时钟是一个内部 RC 时钟,所以并不是准确的 40Khz,而是
    30~60Khz 之间的一个可变化的时钟,只是我们在估算的时候,以 40Khz 的频率来计算,看门狗对时间的要求不是很精确,所以,时钟有些偏差,都是可以接受的。

    看门狗的作用:
    单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环, 看门狗电路就是为了避免这种情况的发生。 看门狗的作用就是在一定时间内(通过定时计数器实现) 没有接收喂狗信号(表示 MCU 已经挂了),便实现处理器的自动复位重启(发送复位信号)。

    看门狗框图:

    预分频寄存器(IWDG_PR):该寄存器用来设置看门狗时钟的分频系数

    重装载寄存器(IWDG_RLR):该寄存器用来保存重装载到计数器中的值。该寄存器也是一个 32位寄存器,但是只有低 12 位是有效的。

     

    ①开启看门狗:键值寄存器(IWDG_KR)中写入 0xCCCC,开始启用独立看门狗;此时计数器开始从其复位值 0xFFF 递减计数。当计数器计数到末尾 0x000 时,会产生一个复位信号(IWDG_RESET)

    ②喂狗:只要键寄存器 IWDG_KR 中被写入 0xAAAA, IWDG_RLR 中的值就会被重新加载到计数器中从而避免产生看门狗复位 。

    IWDG_PR 和 IWDG_RLR 寄存器具有写保护功能。要修改这两个寄存器的值,必须先向IWDG_KR 寄存器中写入 0x5555

    固件库: stm32f10x_iwdg.h stm32f10x_iwdg.c  

    实验代码:

     1 void IWDG_Init(u8 prer,u16 rlr) 
     2 {    
     3      IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);  //使能对寄存器IWDG_PR和IWDG_RLR的写操作
     4     
     5     IWDG_SetPrescaler(prer);  //设置IWDG预分频值:设置IWDG预分频值为64
     6     
     7     IWDG_SetReload(rlr);  //设置IWDG重装载值
     8     
     9     IWDG_ReloadCounter();  //按照IWDG重装载寄存器的值重装载IWDG计数器
    10     
    11     IWDG_Enable();  //使能IWDG
    12 }
    13 
    14 //喂独立看门狗
    15 void IWDG_Feed(void)
    16 {   
    17      IWDG_ReloadCounter();                                           
    18 }

    main: 不喂狗,代码将不断重启,导致LED闪烁

     1 int main(void)
     2 {
     3   LED_init();
     4     delay_init();
     5     delay_ms(300);   
     6   IWDG_Init(4,625);
     7     GPIO_ResetBits(GPIOA, GPIO_Pin_8);
     8     
     9     while(1)
    10     {
    11   if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_15)==RESET) //按键按下,进行喂狗   
    12         IWDG_Feed();
    13         delay_ms(10);
    14     }
    15 
    16 }
  • 相关阅读:
    poi生成excel整理(设置边框/字体/颜色/加粗/居中/)
    java里poi操作Excel工具类【我改】
    java里poi操作excel的工具类(兼容各版本)
    在java poi导入Excel通用工具类示例详解
    layui给select下拉框赋值
    Unity3d开发wp8问题汇总
    Unity3D WP8发布解决方案名 DefaultPackageName 修改问题
    微软发布WP SDK8.0 新增语音、应用内支付等原生API
    unity3d android互调
    解决unity3d发布的网页游戏放到服务器上无法使用的问题
  • 原文地址:https://www.cnblogs.com/darren-pty/p/13974590.html
Copyright © 2020-2023  润新知