【STM32F4】HAL库 CubeMX(五)--------独立看门狗实验(IWDG)

    科技2024-12-17  11

    文章目录

    一、独立看门狗(IWDG)是什么?二、独立看门狗(IWDG)实验1.功能配置2.时钟配置3.生成代码 总结


    # 前言 在前面的学习中,我们主要配置了IO口的输出、输入、中断模式。接下来我们将开始学习STM32F4中IO的复用模式。单片机与外界的联系离不开IO的操作,所以我们继续学习STM32的配置。 后面每个模块的原理仅会简单提示,不会过多讲解,大家可以通过原子的学习视频加深理解,对于某些原理在使用过程中,并不会影响配置。但是配置的参数一定要认识,不然在功能参数区,配置不恰当,会直接影响整个代码。

    一、独立看门狗(IWDG)是什么?

    STM32F4 的独立看门狗由内部专门的 32Khz 低速时钟(LSI)驱动,即使主时钟发生故障,它也仍然有效。这里需要注意独立看门狗的时钟是一个内部 RC时钟,所以并不是准确的 32Khz,而是在 15~47Khz 之间的一个可变化的时钟,只是我们在估算的时候,以 32Khz 的频率来计算,看门狗对时间的要求不是很精确,所以,时钟有些偏差,都是可以接受的。

    二、独立看门狗(IWDG)实验

    1.功能配置

    1、由于CubeMX直接提供功能的配置,所以在使能某项功能后,IO口会自动选定,然后只需要去配置功能参数即可。 注:在图示区不能选择复用功能,在使能功能后,引脚自动复用。避免库函数的繁琐配置。 2、在功能区搜索IWDG 3、勾选Activated 4、查看原子代码,入口参数为4、500 5、IWDG已经配置完毕了,现在我们配置一个LED和一个按键检测实验。 时间计算:设置好看门狗的分频系数 prer 和重装载值就可以知道看门狗的喂狗时间(也就是看门狗溢出时间),该时间的计算方式为: Tout=((4×2^prer) ×rlr) /40 其中 Tout 为看门狗溢出时间(单位为 ms);prer 为看门狗时钟预分频值(IWDG_PR 值),范围为 0~7;rlr 为看门狗的重装载值(IWDG_RLR 的值);

    2.时钟配置

    RCC时钟配置如前文一样(此处一般情况是不变的)。 【STM32F4】HAL库 CubeMX(一)--------创建工程(点亮LED)

    3.生成代码

    1、此处提醒一个避免重复写同一个代码的方法,例如可以将按键的操作和宏定义放入一个.c和.h 文件,后面需要就直接把文件放入新工程,在主函数加.h文件即可使用。在原子视频LED实验有提到。 2、在主函数添加如下代码即可实现本实验。(由于本次实验按键只有一个,就直接判断按键即可)

    HAL_Delay(10); HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9,GPIO_PIN_RESET); if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_4) == 0) { HAL_Delay(10);//消抖 if(HAL_GPIO_ReadPin(GPIOE,GPIO_PIN_4) == 0) { HAL_IWDG_Refresh(&hiwdg);//喂狗 HAL_GPIO_WritePin(GPIOF,GPIO_PIN_9,GPIO_PIN_RESET);//翻转LED } } HAL_Delay(20);

    总结

    独立看门狗的函数也是在IWDG文件里面找到的┗|`O′|┛ 嗷~~,大家也要学会看文件,毕竟所有函数不可能都列出来的哦。


    Processed: 0.031, SQL: 8