大家帮帮忙看看,~~~(这个)WWDG_SetCounter(WWDG_CNT)怎么调用~~~(这个) WWDG_Set_Counter(u8 cnt)的?

2019-08-17 10:36发布

                    //重设置WWDG计数器的值 ~~~(这个)  void WWDG_Set_Counter(u8 cnt)                         {                            WWDG_Enable(cnt);//使能看门狗 , 设置 counter .                                }                         //窗口看门狗中断服务程序                           void WWDG_NVIC_Init()                             {                 NVIC_InitTypeDef NVIC_InitStructure;                 NVIC_InitStructure.NVIC_IRQChannel = WWDG_IRQn;    //WWDG中断                 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;   //抢占2,子优先级3,组2                     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //抢占2,子优先级3,组2                 NVIC_Init(&NVIC_InitStructure);//NVIC初始化                           }
                         void WWDG_IRQHandler(void)                     {
~~~(这个) WWDG_SetCounter(WWDG_CNT);  //当禁掉此句后,窗口看门狗将产生复位
                             WWDG_ClearFlag();  //清除提前唤醒中断标志位
                              LED1=!LED1; //LED状态翻转                        }



是不是少了一个下划线(_)?






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
飞天奇侠
2019-08-17 11:09
自己最近正在学,发表一下我的观点:
WWDG_CR寄存器的第七位WDGA是看门狗的激活位,该位由软件置1以启动看门狗,该位一旦置1后,就只能在硬件复位后清零,因此完整的程序里WWDG_Init()函数里WWDG_Enable()启动看门狗之后,接下来WDGA位软件即使写0也不会关闭看门狗,而WWDG_Enable()以及喂狗函数WWDG_SetCounter()唯一的区别就是关于WDGA位的设置。至于WWDG_Set_Counter()函数,提供的程序里只是定义了一下,中断函数里根本就没用到。

一周热门 更多>