商会网站建设招标方案,分公司一般做网站吗,基于网站的网络营销方法有哪些,用dw制作个人简历网页目录
独立看门狗 IWDG
什么是看门狗#xff1f;
独立看门狗本质
独立看门狗框图
独立看门狗时钟
分频系数算法#xff1a;
编辑
重装载寄存器
键寄存器 溢出时间计算公式
独立看门狗实验
需求#xff1a;
硬件接线#xff1a;
溢出时间计算#xff1…目录
独立看门狗 IWDG
什么是看门狗
独立看门狗本质
独立看门狗框图
独立看门狗时钟
分频系数算法
编辑
重装载寄存器
键寄存器 溢出时间计算公式
独立看门狗实验
需求
硬件接线
溢出时间计算
窗口看门狗 WWDG
什么是窗口看门狗
窗口看门狗工作原理
WWDG框图
控制寄存器
配置寄存器
状态寄存器
超时时间计算 窗口看门狗实验
需求
硬件接线
WWDG配置
编程实现 独立看门狗和窗口看门狗的异同点 独立看门狗 IWDG
什么是看门狗 在由单片机构成的微型计算机系统中由于单片机的工作常常会受到来自外界电磁场的干扰造 成程序的跑飞而陷入死循环程序的正常运行被打断由单片机控制的系统无法继续工作会 造成整个系统的陷入停滞状态发生不可预料的后果所以出于对单片机运行状态进行实时监测 的考虑便产生了一种专门用于监测单片机程序运行状态的模块或者芯片俗称“看门狗” (watchdog) 。独立看门狗工作在主程序之外能够完全独立工作它的时钟是专用的低速时钟LSI由 VDD 电压供电 在停止模式和待机模式下仍能工作。 独立看门狗本质 本质是一个 12 位的递减计数器当计数器的值从某个值一直减到0的时候系统就会产生一个复 位信号即 IWDG_RESET 。 如果在计数没减到0之前刷新了计数器的值的话那么就不会产生复位信号这个动作就是我们 经常说的喂狗。 独立看门狗框图 独立看门狗时钟 独立看门狗的时钟由独立的RC振荡器LSI提供即使主时钟发生故障它仍然有效非常独立。启用 IWDG后LSI时钟会自动开启。LSI时钟频率并不精确F1用40kHz。 LSI经过一个8位的预分频器得到计数器时钟。 分频系数算法 prer是IWDG_PR 的值。 重装载寄存器 重装载寄存器是一个12位的寄存器用于存放重装载值低12位有效即最大值为4096这个值 的大小决定着独立看门狗的溢出时间。 键寄存器 键寄存器IWDG_KR可以说是独立看门狗的一个控制寄存器主要有三种控制方式往这个寄存器 写入下面三个不同的值有不同的效果。 溢出时间计算公式 独立看门狗实验 需求 开启独立看门狗溢出时间为1秒使用按键1进行喂狗。 硬件接线 KEY1 -- PA0 UART1 -- PA9/PA10 溢出时间计算 PSC64RLR625 #include string.h
main函数
HAL_UART_Transmit(huart1, 程序启动。。\n, strlen(程序启动。。\n), 100);
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) GPIO_PIN_RESET)HAL_IWDG_Refresh(hiwdg);HAL_Delay(50);
} 窗口看门狗 WWDG 什么是窗口看门狗 窗口看门狗用于监测单片机程序运行时效是否精准主要检测软件异常一般用于需要精准检测 程序运行时间的场合。 窗口看门狗的本质是一个能产生系统复位信号和提前唤醒中断的6位计数器。产生复位条件 当递减计数器值从 0x40 减到 0x3F 时复位即T6位跳变到0 计数器的值大于 W[6:0] 值时喂狗会复位。 产生中断条件 当递减计数器等于 0x40 时可产生提前唤醒中断 (EWI)。 在窗口期内重装载计数器的值防止复位也就是所谓的喂狗。 窗口看门狗工作原理 WWDG框图 控制寄存器 配置寄存器 状态寄存器 超时时间计算 Tout是WWDG超时时间没喂狗 Fwwdg是WWDG的时钟源频率最大36M4096是WWDG固定的预分频系数 2^WDGTB是WWDG_CFR寄存器设置的预分频系数值 T[5:0]是WWDG计数器低6位最多63 窗口看门狗实验 需求 开启窗口看门狗计数器值设置为 0X7F 窗口值设置为 0X5F 预分频系数为 8 。程序启动时点 亮 LED1 300ms 后熄灭。在提前唤醒中断服务函数进行喂狗同时翻转 LED2 状态。 硬件接线 LED1 -- PB8 LED2 -- PB9 WWDG配置 编程实现 void HAL_WWDG_EarlyWakeupCallback(WWDG_HandleTypeDef *hwwdg)
{HAL_WWDG_Refresh(hwwdg);HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_9);
}
main函数
MX_GPIO_Init();
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_RESET);
HAL_Delay(300);
MX_WWDG_Init();
while (1)
{HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8, GPIO_PIN_SET);HAL_Delay(40);
} 独立看门狗和窗口看门狗的异同点