zoukankan      html  css  js  c++  java
  • 独立看门狗(IWDG):神舟IV实验

    看了正点的教程觉得写得很好,以下复制的正点的教程

     http://www.openedv.com/posts/list/0/11790.htm#71198

    1)向IWDG_KR写入0X5555

    #define IWDG_WriteAccess_Enable     ((uint16_t)0x5555)
    #define IWDG_WriteAccess_Disable    ((uint16_t)0x0000)

    通过这步,我们取消IWDG_PR和IWDG_RLR的写保护,使后面可以操作这两个寄存器。

    设置IWDG_PR和IWDG_RLR的值。这两步设置看门狗的分频系数,和重装载的值

    Tout=((4×2^prer) ×rlr) /40

    比如我们设定prer值为4rlr值为625,那么就可以得到Tout=64×625/40=1000ms,这样,看门狗的溢出时间就是1s,只要你在一秒钟之内,有一次写入0XAAAAIWDG_KR,就不会导致看门狗复位(当然写入多次也是可以的)。这里需要提醒大家的是,看门狗的时钟不是准确的40Khz,所以在喂狗的时候,最好不要太晚了,否则,有可能发生看门狗复位。

    2)向IWDG_KR写入0XAAAA

    /* KR register bit mask */
    #define KR_KEY_Reload    ((uint16_t)0xAAAA)
    #define KR_KEY_Enable    ((uint16_t)0xCCCC)

    通过这句,将使STM32重新加载IWDG_RLR的值到看门狗计数器里面。即实现独立看门狗的喂狗操作。

    3)向IWDG_KR写入0XCCCC

    通过这句,来启动STM32的看门狗。注意IWDG在一旦启用,就不能再被关闭!想要关闭,只能重启,并且重启之后不能打开IWDG,否则问题依旧,所以在这里提醒大家,如果不用IWDG的话,就不要去打开它,免得麻烦。

    IWDG_Config

    喂狗函数

    IWDG_Feed
    1 //喂独立看门狗
    2 void IWDG_Feed(void)
    3 {   
    4      IWDG_ReloadCounter();//reload                                           
    5 }

    在systick中断里喂狗

    SysTick_Handler
    1 void SysTick_Handler(void)
    2 {
    3 
    4      IWDG_Feed();
    5      //printf("feed\r\n");
    6      Led_Turn_on_all();    
    7                           
    8 }

    在按键四按下中断处理关闭systick,这样就停止喂狗,发现系统reset

    EXTI0_IRQHandler
     1 void EXTI0_IRQHandler(void)
     2 {
     3   u8 i;
     4   /* Key4 */
     5   if(EXTI_GetITStatus(EXTI_Line0) != RESET)
     6   {
     7     Led_Turn_off_all();
     8 
     9 
    10     /* 关闭systick */
    11    Systick_Close();
    12 
    13     /* Clear the EXTI Line 0 */
    14     EXTI_ClearITPendingBit(EXTI_Line0);
    15   }
    16 }
  • 相关阅读:
    第一次离职了
    华为手机 关于Android真机调试的时候logcat中无法输出调试信息的解决办法
    ListView的简单实用
    博客生涯开始
    hdu1151:Air Raid(最小路径覆盖)
    hdu1151:Air Raid(最小路径覆盖)
    hdu1162:Eddy's picture(最小生成树)
    hdu1162:Eddy's picture(最小生成树)
    hdu1301:Jungle Roads(最小生成树)
    hdu1301:Jungle Roads(最小生成树)
  • 原文地址:https://www.cnblogs.com/wwjdwy/p/2961158.html
Copyright © 2011-2022 走看看