背景
参考 《LwIP应用开发实战指南》第7章,将 lwip_ping_raw demo 安装到stmf429 单片机后,即使没有任何操作,还是每隔1秒就会收到一个 60 字节的数据包,内容相同,很懵逼,决定搞懂。
测试
在ethernetif.c文件 low_level_input 方法中 添加接收到的数据内容打印代码:
for(int i =0;i < len;i++)printf("%02x",buffer[i]);
printf("\n");
PRINT_INFO("receive frame %d len buffer : %s\n", len, buffer);
获取数据内容是:
ffffffffffffc85ba001d24008060001080006040001c85ba001d240c0a80001ffffffffffffc0a80001000000000000000000000000000000000000
解析数据包
经过解析,这是一个携带 arp 协议的以太网数据包,解析过程如下:

遗留问题
虽然知道这是一个 携带 arp 协议的以太网数据包,但是为什么路由器要以1秒这么快的频率向单片机发送喃?有大神知道,告知一下,这个是我在Stack Overflow的同一个问题贴,欢迎指教:

在STM32F429单片机上运行lwip_ping_raw demo时,发现设备每隔1秒会收到60字节的相同数据包。通过打印数据内容分析,确定这是一个ARP协议的以太网数据包。尽管已解析出ARP包,但尚不清楚路由器为何以如此高的频率发送。问题在Stack Overflow上寻求解答。
最低0.47元/天 解锁文章
7905





