STM32F4 的独立看门狗由内部专门的 32Khz 低速时钟(LSI)驱动,即使主时钟发生故障,它也仍然有效。这里需要注意独立看门狗的时钟是一个内部 RC时钟,所以并不是准确的 32Khz,而是在 15~47Khz 之间的一个可变化的时钟,只是我们在估算的时候,以 32Khz 的频率来计算,看门狗对时间的要求不是很精确,所以,时钟有些偏差,都是可以接受的。
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 的值);
RCC时钟配置如前文一样(此处一般情况是不变的)。 【STM32F4】HAL库 CubeMX(一)--------创建工程(点亮LED)
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′|┛ 嗷~~,大家也要学会看文件,毕竟所有函数不可能都列出来的哦。