最近用到了W5500 的keepalive功能,他有两种模式,一种自动模式,一种手动模式,应用也很简单。
自动模式:
IINCHIP_WRITE(Sn_KPALVTR(s),0×02); //配置命令,可以放到系统初始化中
这条命令就可以了, 最后一个参数的数字是 keepalive 的发送间隔时间,单位是5S,现在这种配置就是10S 一次,但是这个流程要注意,如果你在10S的周期内,W5500与建立链接的SOCKET有通信,这个keepalive 帧是不发送的,如果在10S内的周期内没有网络数据 交互,该帧才发送。
手动模式:
IINCHIP_WRITE(Sn_KPALVTR(s),0×00); //配置命令,可以放到系统初始化中
IINCHIP_WRITE(Sn_CR(s),Sn_CR_SEND_KEEP); //因为手动发送,要放到定时器或者主循环中
这个是手动发送的,只要执行 第二条 指令就会发送出 keepalive帧, 不管这个周期内有无数据交互
本文详细介绍了W5500芯片中的KeepAlive功能,并提供了自动模式和手动模式的具体配置方法。自动模式下,通过一条配置命令即可实现定时发送KeepAlive帧,但在有数据交互时不会发送。手动模式则需要主动触发发送指令。

2879


被折叠的 条评论
为什么被折叠?



