ESP826--系统看门狗

系统看门狗

在这里首先要理解看门狗的的作用,看门狗是单片机的一个内部模块,该模块的主要作用是防止系统跑偏,也就是说防止系统自动复位。在上一节的延时函数里面,将代码烧录到单片机里面之后之所以会出现延时效果不良好,然后模块一直出现复位情况的原因就是因为系统一直在进行复位。
在乐鑫提供的官方文档2c-esp8266_non_os_sdk_api_reference_cn(下载链接:https://www.espressif.com/sites/default/files/documentation/2c-esp8266_non_os_sdk_api_reference_cn.pdf) 第二章里面已经说到。
Non-OS SDK适合于用户需要完全控制代码执行顺序的应用程序。由于没有操作系统,non-OS SDK不支持任务调度,也不支持基于优先级的抢占。
Non-OS SDK最适合于事件驱动的应用程序,由于没有操作系统,non-OS SDK没有单个任务堆栈大小的限制或者执行时隙要求。
Non-OS SDK不支持抢占任务或进程切换。因此开发者需要自行保证程序的正确执行,用户代码不能长期占有CPU。否则会导致看门狗复位,ESP8266重启。
如果某些特殊情况下,用户线程必须执行较长时间(比如大于500ms),建议经常调用system_soft_wdt_feed() API来喂软件看门狗,而不建议禁用软件看门狗。
注:这里需要说明的是我们模块的软件看门狗是你在开启单片机模块之后自动开启的。

系统看门狗相关API函数

system_soft_wdt_feed()函数

函数原型:void system_soft_wdt_feed(void)
函数功能:喂软件看门狗
函数形参:无
返回值:  无
注意:    仅支持在软件看门狗开启情况下,调用本接口。

system_soft_wdt_restart()函数

函数原型:void system_soft_wdt_restart(void)
函数功能:重启软件看门狗
函数形参:无
返回值:  无
注意:    仅支持在软件看门狗关闭(system_soft_wdt_stop())情况下,调用本接口。

system_soft_wdt_stop()函数

函数原型:void system_soft_wdt_stop(void)
函数功能:关闭软件看门狗
函数形参:无
返回值:  无
注意:    请勿将软件看门狗关闭太长时间(小于5秒),否则将触发硬件看门狗复位

参考代码

void ICACHE_FLASH_ATTR user_init(void)
{
	system_soft_wdt_feed();//喂软件看门狗,防止程序跑偏
	uart_init(9600, 9600);//设置串口波特率
	os_printf("=============================================\r\n");
	os_printf("\t SDK version:\t%s", system_get_sdk_version());
	os_printf("\r\n嵌入式陈工个人编辑资料\r\n未经本人同意请勿私自传播\r\n");
	os_printf("\r\nGPIO输出测试代码\r\n");
	os_printf("\r\n带看门狗\r\n");
	os_printf("\r\nLED闪烁\r\n");
	os_printf("=============================================\r\n");
	//1.设置LED灯所对应的GPIO4口为IO口模式 -- 详见文档3.3.1.1章节
	PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO4_U, FUNC_GPIO4);	// GPIO4设为IO口
															//2.设置GPIO4初始化输出电平 -- 详见文档3.3.1.4和3.3.2.1章节
	GPIO_OUTPUT_SET(GPIO_ID_PIN(4), 1);//将GPIO4初始化为高点平状态--》灯灭

	while (1)
	{
		GPIO_OUTPUT_SET(GPIO_ID_PIN(4), 0);//点亮LED
		os_DelayMs(500);
		GPIO_OUTPUT_SET(GPIO_ID_PIN(4), 1);//熄灭LED
		os_DelayMs(500);
	}
}

参考代码:https://github.com/ChenJiliang00/ESP8266

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值