在做项目时需要用到两个stm32f4开发板通过网口通信,但是要求跑的是链路层,即mac层通信,之前是死活调试不同,经过一番折腾终于解决,记录下解决办法。
感谢这篇文章提供的思路:STM32以太网MAC Loopback的实现
1)检查硬件配置,可以参考 关于LWIP用法(一)硬件连接 同时要确保网卡正确配置,设置好固定ip和电脑主机ping一下,即可知道是否网卡正常。
2)软件配置
mac层通信,一个设备要给另外一个设备发数据首先要知道另外一个设备的mac地址,如果不知道那就要广播通信。根据以太网帧如下图,可知目的MAC地址可以直接设置为0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,(我之前就是因为没有设置为广播地址所以另外一个设备一直没有进入网口中断就是没有收到数据,因为mac地址直接给我过滤掉了)
这个软件可以方便查看自己的组帧数据,下图是我自己组帧发的数据。