This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ek-tm4c129xl的enet_tcpecho_server例程问题

我的ek-tm4c129xl的开发板,用的开发板自带的enet_tcpecho_server例程,动态IP时工作正常,改成静态IP时,如果接收字节少于10个字符,网口就不工作了,一定要复位才能恢复正常,不知道什么原因。

  • 例程的版本是TivaWare_C_Series-2.2.0.295
  • 好的 我会在确认后给您回复
  • 您是指修改下面的模式吗?

    //*****************************************************************************
    //
    // The default IP address acquisition mode.
    //
    //*****************************************************************************
    static uint32_t g_ui32IPMode = IPADDR_USE_STATIC;

  • 不是,这条是默认的,没有改动,
    修改的lwipopts.h中的两部分:
    //*****************************************************************************
    //
    // ---------- DHCP options ----------
    //
    //*****************************************************************************
    #define LWIP_DHCP 1 // default is 0
    //#define DHCP_DOES_ARP_CHECK ((LWIP_DHCP) && (LWIP_ARP))

    改为
    //*****************************************************************************
    //
    // ---------- DHCP options ----------
    //
    //*****************************************************************************
    //#define LWIP_DHCP 1 // default is 0
    //#define DHCP_DOES_ARP_CHECK ((LWIP_DHCP) && (LWIP_ARP))

    //*****************************************************************************
    //
    // ---------- AUTOIP options ----------
    //
    //*****************************************************************************
    #define LWIP_AUTOIP 1 // default is 0
    #define LWIP_DHCP_AUTOIP_COOP ((LWIP_DHCP) && (LWIP_AUTOIP))
    // default is 0
    #define LWIP_DHCP_AUTOIP_COOP_TRIES 5 // default is 9

    改为
    //*****************************************************************************
    //
    // ---------- AUTOIP options ----------
    //
    //*****************************************************************************
    //#define LWIP_AUTOIP 1 // default is 0
    //#define LWIP_DHCP_AUTOIP_COOP ((LWIP_DHCP) && (LWIP_AUTOIP))
    // default is 0
    //#define LWIP_DHCP_AUTOIP_COOP_TRIES 5 // default is 9

    然后修改enet_tcp_echo_server.c中的
    lwIPInit(g_ui32SysClock, pui8MACArray, 0, 0, 0, IPADDR_USE_DHCP);
    改为
    lwIPInit(g_ui32SysClock, pui8MACArray, 0xc0a8017e, 0xffffff00, 0, IPADDR_USE_STATIC);

    下载以后可以ping通,也可以建立连接,接收10个以上字符时也正常,少于10个字符就没反应了,断开也不能重新建立连接,要复位才行。
  • 我请同事测试了一下,您可以点击下面的链接查看他的测试结果:

    e2e.ti.com/.../3551138
  • 我按照charles的方式修改了配置(改成默认值而不是注释掉),还是老问题,不明白为什么。我用的开发工具是keil uVision5.28.难道要用CCS才行吗?

  • 您的图片未能成功显示。之后请以附件形式上传图片。关于此疑问,您可以在英文贴上继续跟帖询问charles
  • 是编译器的问题,用CCS重新编译了一下就没问题了,估计是不同的编译器用的库文件不一样。

  • 谢谢您的反馈!很高兴您能解决问题