由于STM32FXX系列的以太网MAC具有CheckSumOffload特性,可以自动为TCP,UDP,ICMP等IP报文计算校验和,导致大数据包在第一个IP分段之后的IP fragment会自动加入校验和,而导致数据错误,因此即使在LWIP配置头文件中开启了 IP_FRAG和IP_REASSEMBLY,仍然无法PING通。解决办法是禁止MAC的自动校验功能,在LWIP中启用软件检验方式。
heth.Init.ChecksumMode = ETH_CHECKSUM_BY_HARDWARE;