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 }
  • 相关阅读:
    window/body/img/iframe 的onload事件
    程序员考证之信息系统项目管理师
    程序员转项目管理之考证PMP
    2018第29周总结
    小程序行业报告学习
    谷歌中国的第一款产品“猜画小歌”
    小程序学习资料
    月薪3万Java程序员要达到的技术层次
    SOA、微服务与服务网格
    不重视管理会给软件开发带来哪些恶果
  • 原文地址:https://www.cnblogs.com/wwjdwy/p/2961158.html
Copyright © 2011-2022 走看看