Forum: Mikrocontroller und Digitale Elektronik STM32 nucleo LWIP: UDP empfang geht nicht nach restart send UDP:


von H. R. (hacker_r)


Lesenswert?

Hi
sieht jnd auf die schnelle was schief läuft?

Ich sende von PC UDP packete an ein STM32 Nucleo board. Sie kommen auch 
an. Nur wenn ich mein UDP send script neu starte , empfängt mein Nucleo 
die Packete nicht mehr! resete ich die FW empfange ich wieder.
Sieht jnd auf Anhieb was schief läuft?

es funktioniert wenn ich in jeder iteration netconn_delete(conn) 
ausführe und anschliessen wieder new, und netconn_bind ...
Eine Idee wie man es effizienter machen kann?

static void udpecho_thread(void *arg)
{
  err_t err, recv_err;

  LWIP_UNUSED_ARG(arg);

  conn = netconn_new(NETCONN_UDP);
  if (conn!= NULL)
  {
    err = netconn_bind(conn, IP_ADDR_ANY, 127);
    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);
    }
  }
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.