IWDOG->KR=0x5555;
第二步:设置喂狗最大时间间隔。
时间计算公式为:Tout=((4*2^prer)*rlr)/40 (ms) prer:分频数 rlr:从装载寄存器设置的值。其实公式本来应该为:时间=每秒的计数次数(频率)/(重装寄存器的值)要是还不理解的话就是这样的:1秒/需要设置的时间=每秒的计数次数(频率)/(重装寄存器的值)
而每秒的计数次数(频率)=40KHZ/预分频数。(4*2^prer)=预分频数。可以参看下图:
例如:要设置1s的时间可以这样:prer=4,rlr为625,带入上式得出结果为1000ms.
IWDG->PR=prer; // 预分频寄存器(IWDG_PR)
IWDG->RLR=rlr; // 重装载寄存器(IWDG_RLR)
第三步:对预分频寄存器和重装载寄存器进行保护起来(写保护)
向键寄存器里写入0xaaaa,将再次写保护。另外0xAAAA,IWDG_RLR中的值就会被重新加载到计数器。
第四步:使能看门狗
向键寄存器里面写入0xcccc就使能了独立看门狗了。此时看门狗也就开始工作了。
IWDG->KR=0XCCCC;
第五步:在不超过最大的时间内进行喂狗操作
只需要向键寄存器里面写入0xaaaa就可以了。
IWDG->KR=0XAAAA;
因篇幅问题不能全部显示,请点此查看更多更全内容