——————————————————————————————————————————————————————————
无论是谁,你的一天也只有二十四小时。
你可以玩,可以睡大觉,可以去学习,也可以去探索那片从未到达的那片海。
时间不会为任何人停留,你可以选择原地踏步,当然你也可以选择勇攀高峰。
------多年以后你会感谢现在努力的自己!
—————————————————————————————————————————————————————————————
一直不理解为什么用两个寄存器来控制,想了一早上好不容易想通了,现在记录:
这个WWDG_CRF和WWDG_CR寄存器的的第六位可以记做W[6:0]和T[6:0],这样可以理解为W[6:0]和T[6:0]可以存储同样多的数据。即0x7F到0x00。因为喂狗的时间有上下限,下窗口的的值是0x3F。上窗口的值是由W[6:0]寄存器保存的,这样我们就明白了W[6:0]的值不能低于0x3F。(如果低于0x3F,就不能形成窗口)。W[6:0]最大的值就是0x7F。因此,最大的喂狗时间是计数从0x7F到0x3F之间的时间。
【注意点】
IWDG有自己的时钟是内部的专门的大约40MHz的时钟驱动。是独立的RC时钟。不需要使能。
WWDG是使用的的是PCLK1的时钟,需要先使能时钟。
程序的步骤:
第一步 使能
RCC_APB1PeriphClockCmd();
第二步 设定值
WWDG_SetPrescaler(); //设定分频系数
WWDG_SetWindowValue();//设定装载值
第三步 清除提前唤醒标志位
void WWDG_ClearFlag(void);
没有写完。。