现象:用CubeMX生成LwIP(LwIP2.0.3版本)项目,netconn编程,接收没有问题,发送使用netconn_write时,会返回错误码-6(Illegal value),无法发送。而用LwIP2.0.0版本时,没有这个问题。 原因查找:当前开启了LWIP_SO_SNDTIMEO,设置了send_timeout不为0。 解决办法:1.把send_timeout设为0(不知道会不会带来其他问题)。 2.或者把Middlewares\Third_Party\LwIP\src\api里的api_lib.c中netconn_write_partly函数下 #if LWIP_SO_SNDTIMEO if (conn->send_timeout != 0) { dontblock = 1; } #endif /* LWIP_SO_SNDTIMEO */ 里的"dontblock = 1;"注释掉。(未验证是否会带来其他问题) 请知道的大哥告诉一下是否是LwIP库的BUG?或应该如何设置send_timeout? |
这个不光是因为这个问题,在cubeide下,就算不设置发送超时,连续发送几分钟后,也会死掉。同样的程序,在尅了下,就没有任何问题。 |
这个不光是因为这个问题,在cubeide下,就算不设置发送超时,连续发送几分钟后,也会死掉。同样的程序,在keil MDK下,就没有任何问题。 |