【发布时间】:2019-08-05 15:03:13
【问题描述】:
*更新:Cube 有状态和链接回调。还没有尝试过,但我认为这是最好的解决方案
我正在使用我的STM32F429ZI 上的以太网外围设备和
CubeMX 生成的 LWIP 中间件
。 This question 类似,但适用于 PC。
我发现很难理解产品规格中的以太网部分。我可以查看哪些寄存器来检查被关闭的链接并不明显。
我还研究了 LWIP 代码,以防有明显的非注册观察方法。在主循环中,它使用MX_LWIP_Process 轮询网络接口。在读取时,它通过以下方式知道是否有数据包:
void ethernetif_input(struct netif *netif)
{
err_t err;
struct pbuf *p;
/* move received packet into a new pbuf */
p = low_level_input(netif);
/* no packet could be read, silently ignore this */
if (p == NULL) return;
在发送时,tcp_output() 函数非常麻烦。它有无效的 netif、无效的 local_ip 和一个我可以看到的一般错误,但没有任何东西直接告诉我链接已关闭。
我最后的想法是以太网接头的 LED 指示灯在拔下电缆时会关闭。我将查看 STM32F4 DK 的硬件图,看看是否可以观看。
【问题讨论】: