stm32F407学习之10:利用finsh验证看门狗功能

上章节完成了看门狗的任务,初步验证看门狗已经工作了。 此章节再次验证看门狗的功能(包括关闭、开启和复位等)。

1.修改代码

修改test_cmd.c (新加看门狗测试)

void test_watchdog(int argc, char **argv)
{
	 if (argc < 2){
        RLOG_WARN("Usage: test_watchdog <start|stop|reboot>\n");
        return;
    }
		if (strcmp(argv[1], "start") == 0)
    {
		wwdog_start();
        RLOG_INFO("watchdog start \n");
    }
    else if (strcmp(argv[1], "stop") == 0)
    {
        wwdog_stop();
        RLOG_INFO("watchdog stop\n");
    }
    else if (strcmp(argv[1], "reboot") == 0)
    {
        watchdog_reset_reboot();
        RLOG_INFO("watchdog reboot\n");
    }
	else
    {
        RLOG_INFO("Invalid argument.\n");
    }
	
}
MSH_CMD_EXPORT(test_watchdog, test_watchdog start|stop|reboot eg);
2.测试功能

msh >test_watchdog stop
[INFO] watchdog stop
msh >
msh >test_watchdog start
[INFO] watchdog start
msh >
msh >t

3.测试总结

测试1: 直接发送watchdog reboot -->系统复位
测试2: 依次发送watchdog stop -- watchdog reboot -->系统正常
测试2: 依次发送watchdog stop -- watchdog reboot -- test_watchdog start watchdog reboot -->系统复位

此过程模拟了看门狗是可以正常关闭再到开启生产的过程。

posted @ 2025-07-25 13:54  cupid8505  阅读(20)  评论(0)    收藏  举报