你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F429 以太网UDP通讯异常

[复制链接]
codeskin 提问时间:2018-3-5 16:33 /
专家好:
      目前正在调试STM32F429的以太网,项目使用的是FreeRTOS+LWIP模式,创建工程使用的是cubemx,使用的开发板是nucleo-144,目前正在调试以太网部分。测试用程序是简单的echo程序,TCP模式没发现任何问题,即使开2个TCP线程都没问题;测试UDP模式时发现,第一次建立UDP连接后发送数据到开发板能够正常收到开发板的回应,当断开连接然后重新建立连接后则不能够收到开发板的回应。程序如下:
static void udpecho_thread(void *arg)
{
  err_t err,recv_err;
  struct netconn *conn;
  struct netbuf *buf;
  ip_addr_t *addr;
  unsigned short port;

  conn = netconn_new(NETCONN_UDP);
  if (conn!= NULL)
  {
    err = netconn_bind(conn, IP_ADDR_ANY, 7);
    if (err == ERR_OK)
    {
      while (1)
      {
        recv_err = netconn_recv(conn, &buf);
      
        if (recv_err == ERR_OK)
        {
          addr = netbuf_fromaddr(buf);
          port = netbuf_fromport(buf);
          netconn_connect(conn, addr, port);
          buf->addr.addr = 0;
          netconn_send(conn,buf);
          netbuf_delete(buf);
        }
      }
    }
    else
    {
      netconn_delete(conn);
    }
  }
}

望专家解惑。
收藏 评论3 发布时间:2018-3-5 16:33

举报

3个回答
废鱼 回答时间:2018-3-5 16:37:57
我们来探讨一下,UDP断开后,如果没有主动发起数据到接收程序,接收程序发的任何数据理论终端收不到。TCP不一样,他们建立的是连接,重新连接后,是可以直接发送的。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

Angel_YY_ST 回答时间:2018-3-5 17:53:52
提示: 作者被禁止或删除 内容自动屏蔽
codeskin 回答时间:2018-3-9 15:52:14
Angel_YY 发表于 2018-3-5 17:53
用的PC机和开发板进行UDP通讯吗?如若是可以在第二次进行UDP通讯的时候换一台PC进行UDP通讯测试,看看能否 ...

谢谢提供思路,还真没这样试过,貌似不应该是电脑的问题。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版