weixin_43693250 2023-12-07 08:56 采纳率: 0%
浏览 41
已结题

stm32F4+lwip的tcp发送失败不返回错误值

keil软件stm32F4+LWIP进行TCP连接发送,正常连接发送没有问题,当网络异常时,按理发送失败,应该返回值 err_flag!=ERR_OK,但是现在并不返回错误的值,是为什么? 另外

img


会不会与lwipopt.h中的配置参数有关?

err_flag=netconn_write( tcp_client_server_conn, TXDBUF[TxdBufTailIndex], TXDBUFLength[TxdBufTailIndex], NETCONN_COPY);
if( err_flag==ERR_OK)
{
Increase(TxdBufTailIndex);
}
else
{
DisCollectServer();  //链接断开标志
REGISTER_FLAG = 0x00;
}

  • 写回答

17条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2023-12-07 08:57
    关注
    获得0.60元问题酬金

    引自强大而免费的微信小程序:皆我百晓生

    可能与lwip的配置参数有关。

    lwipopt.h是LWIP库的配置文件,其中包含了一些宏定义,用于配置LWIP库的行为。这些配置参数可以影响网络连接和发送的行为,包括超时时间、包大小限制、重传次数等。

    如果网络异常导致发送失败,可能是由于配置参数中设置了一些默认的行为,使得不返回错误值。你可以检查lwipopt.h中的配置参数,看看是否有关于错误返回值的设置。

    另外,你可以尝试通过打印调试信息来查找错误的原因。你可以在发送之前和之后分别打印出err_flag的值,看看是否有变化。如果没有变化,说明可能是其他原因导致的发送失败。

    总之,要解决这个问题,你需要进一步排查错误的原因。可以检查lwipopt.h中的配置参数,打印调试信息,以及检查网络连接和发送的其他相关代码。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月15日
  • 创建了问题 12月7日