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

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 回答时间:2018-3-5 17:53:52
用的PC机和开发板进行UDP通讯吗?如若是可以在第二次进行UDP通讯的时候换一台PC进行UDP通讯测试,看看能否正常接收到开发板的回应。如果此时有回应,问题可能在上位机。
看代码问题可能是在连接PC时没有连接正确。
netconn_connect(conn, addr, port);

评分

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

查看全部评分

codeskin 回答时间:2018-3-9 15:52:14
Angel_YY 发表于 2018-3-5 17:53
用的PC机和开发板进行UDP通讯吗?如若是可以在第二次进行UDP通讯的时候换一台PC进行UDP通讯测试,看看能否 ...

谢谢提供思路,还真没这样试过,貌似不应该是电脑的问题。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版