最近在测试项目的看门狗是否能正常触发的时候,发现在应用程序里明明已经开启了看门狗(_FWDT(WDT_ON)),在主循环中放置了while(1); 测试语句,运行的过程中,应用程序没有复位!!!!
查看芯片手册关于看门狗的使能操作,程序中_FWDT(WDT_ON)就是开启该功能,为何还是无法触发看门狗复位???
程序使用到了在在线升级功能(bootloader),会不会是因为bootloader中未开启导致的?经查确实是在bootloader中未启用看门狗,接下来就是做实验测试了,修改bootloader程序,使能看门狗功能(加入_FWDT(WDT_ON))语句,编译下载,然后再升级应用程序,这次程序有触发看门狗的复位了!!!
若有使用看门狗功能或着其他配置位配置,需在bootloader中配置好,应用程序中对配置位的更改是无效的,切记!!!!!
20210703更新:
查看了芯片手册,当配置位未使能看门狗时,可使用RCON寄存器的SWDTEN位开启。看门狗的超时时间无法更改,只能在bootloader中配置