理论教育 基于物联网的STM32单片机实践

基于物联网的STM32单片机实践

时间:2023-11-09 理论教育 版权反馈
【摘要】:表4.15IWDG库函数使用IWDG的一般配置步骤如下。设置IWDG_PR的值:设置看门狗的分频系数。向IWDG_KR中写入OxAAAA:以使STM32F103重新加载IWDG_RLR的值到看门狗计数器中。向IWDG_KR中写入OxCCCC:以启动STM32F107的看门狗。编程实例例4.13读下面的程序,分析看门狗使用的方法。从程序可以看出,看门狗“喂狗”一般在while循环体中,“喂狗”对应的时间必须大于while循环体循环一次的时间,否则程序将被复位。由于看门狗时钟不是很精确,设置重装载值时要留出一定的余量。

基于物联网的STM32单片机实践

IWDG库函数为stm32f10x_iwdg.c,头文件为stm32f10x_iwdg.h。IWDG库函数包含如表4.15所示的函数。

表4.15 IWDG库函数

使用IWDG的一般配置步骤如下。

(1)向IWDG_KR中写入0x5555:以取消IWDG_PR和IWDG_RLR的写保护,使后面可以操作这两个寄存器。

(2)设置IWDG_PR的值:设置看门狗的分频系数。

(3)设置IWDG_RLR的值:设置看门狗的重装载的值。

(4)向IWDG_KR中写入OxAAAA:以使STM32F103重新加载IWDG_RLR的值到看门狗计数器中。

(5)向IWDG_KR中写入OxCCCC:以启动STM32F107的看门狗。(www.daowen.com)

注意:IWDG有自己独立的时钟,所以不需要像其他外设那样另外开启时钟。

编程实例

例4.13读下面的程序,分析看门狗使用的方法。

从程序可以看出,看门狗“喂狗”一般在while(1)循环体中,“喂狗”(重装载值)对应的时间必须大于while(1)循环体循环一次的时间,否则程序将被复位。

对于本例while(1)循环体循环一次的时间约为1s,“喂狗”(重装载值)对应的时间为1.6s。由于看门狗时钟不是很精确,设置重装载值时要留出一定的余量。

将while(1)循环体中IWDG_ReloadCounter();语句注释掉,比较两次运行结果。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈