做到了实验6—看门狗实验,看门狗就是一个用来检测单片机是否正常运行,有自己独立的晶振,不会受到单片机晶振的影响,其原理是软件以一定的时间写入0XAAAA,如果超过规定时间,那么就会产生复位,写入OX5555启动看门狗,与看门狗有关的两个寄存器是IWDG->PR和IWDG->RLR,两个寄存器都有写保护功能,要修改两个寄存器的值,先向IWDG->KR寄存器写入0X5555,预分频寄存器(IWDG_PR),该寄存器用来设置看门狗时钟的分频系数,最低为4,最高位 256,该寄存器是一个 32 位的寄存器,但是我们只用了最低 3位,其他都是保留位。还有一个重装载值寄存器,每次向IWDG->KR写入0xAAAA后从新装载预设值,并开始递减。 写入步骤
1:向IWDR->KR写入0X5555,设置IWDG->PR和IWDG->RLR的值可以得到看门狗的时间计算方法为:Tout=((4×2^prer) ×rlr) /40(Tout为溢出时间,prer为预分频时间是pr的值范围为0~7,rlr为重装载值,比如我们设定 prer 值为4, rlr 值为 625,那么就可以得到 Tout=64×625/40=1000ms)
2:向IWDDG->KR写入0XAAAA,将使 STM32 重新加载 IWDG_RLR的值到看门狗计数器里面。 即实现独立看门狗的喂狗操作。
3:向IWDG->KR写入OXCCCC启动看门狗。
|