打印
[STM32F4]

哪位大神帮我改下程序,实现stm32不间断向上位机发送数据,直到上位机断开网络连接

[复制链接]
766|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yiyinbaobei|  楼主 | 2015-3-30 15:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
原程序,通过下位机判断接收上位机数据的长度,选择发送给上位机什么数据,我想实现如果上位机不断开网络连接,下位机一直发送数据,直到上位机断开网络连接。
我之前改动会死循环,

哪位大神来帮我改动一下,谢谢,不胜感激

static void tcpecho_thread(void *arg)
{
  struct netconn *conn, *newconn;
  err_t err, accept_err;
  struct netbuf *buf;
void *data="abcdef";
u16_t len;
  err_t recv_err;
  int m;   
  LWIP_UNUSED_ARG(arg);

  conn = netconn_new(NETCONN_TCP);
  
  if (conn!=NULL)
  {  
    err = netconn_bind(conn, NULL, 7);   
    if (err == ERR_OK)
    {
      netconn_listen(conn);
   
      while (1)
      {
         accept_err = netconn_accept(conn, &newconn);
   
          if (accept_err == ERR_OK)
        {
          recv_err = netconn_recv(newconn, &buf);
        while ( recv_err == ERR_OK)
          {
            do
            {
              netbuf_data(buf, &data, &len);
           
switch(len)
  {
    case 1:for(m=1;m<=10;m++)
{
netconn_write(newconn, e1, 12, NETCONN_COPY);
}//仅实现发送十个数据


   break;
case 2:netconn_write(newconn, e2, 12, NETCONN_COPY);
   break;
case 3:netconn_write(newconn, e3, 12, NETCONN_COPY);
   break;

    case 4:netconn_write(newconn, e4, 12, NETCONN_COPY);
   break;
case 5:netconn_write(newconn, e5, 12, NETCONN_COPY);
   break;
case 6:for(m=1;m<=10;m++)
{
    netconn_write(newconn, e6, 12, NETCONN_COPY);
}

   break;
}

         
            }
            while (netbuf_next(buf) >= 0);
         
            netbuf_delete(buf);
recv_err = netconn_recv(newconn, &buf);
          }
        
                 netconn_close(newconn);
          netconn_delete(newconn);
        }
      }
    }
    else
    {
      netconn_delete(newconn);
        }
  }
  else
  {
     }
}
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝