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

关于TCP接收到的数据使用

[复制链接]
jum 提问时间:2019-4-1 00:30 /


这是开发板自带的程序。我要使用接收的数据和事先定义的值进行比较,为真LED3_ON,为假LED3_OFF.
需要如何操作。请赐教》》》》》》》》》》》

#include "main.h"
int aa,jj;
/***********************************************************************
º¯ÊýÃû³Æ£ºtcp_server_recv(void *arg, struct tcp_pcb *pcb,struct pbuf *p,err_t err)
¹¦    ÄÜ£ºTCPÊý¾Ý½ÓÊպͷ¢ËÍ
×¢    Ò⣺ÕâÊÇÒ»¸ö»Øµ÷º¯Êý£¬µ±Ò»¸öTCP¶Îµ½´ïÕâ¸öÁ¬½Óʱ»á±»µ÷ÓÃ
***********************************************************************/
static err_t tcp_server_recv(void *arg, struct tcp_pcb *pcb,struct pbuf *p,err_t err)
{
      
struct pbuf *p_temp = p;

if(p_temp != NULL)
{   
        
      aa++;
          if(aa==1)
          { LED2_ON;}
          if (aa==2)
          {
            LED2_OFF;
              aa=0;
           }
         
         
         
  tcp_recved(pcb, p_temp->tot_len);//»ñÈ¡Êý¾Ý³¤¶È tot_len£ºtcpÊý¾Ý¿éµÄ³¤¶È
  
           
           
           
           while(p_temp != NULL)
           
  {   
   /******½«Êý¾ÝÔ­Ñù·µ»Ø*******************/
   tcp_write(pcb,p_temp->payload,p_temp->len,TCP_WRITE_FLAG_COPY);  // payloadΪTCPÊý¾Ý¿éµÄÆðʼλÖà     
   tcp_output(pcb);
   p_temp = p_temp->next;
  }  
}
else
{
  tcp_close(pcb);            /* ×÷ΪTCP·þÎñÆ÷²»Ó¦Ö÷¶¯¹Ø±ÕÕâ¸öÁ¬½Ó£¿ */
}
/* ÊͷŸÃTCP¶Î */
pbuf_free(p);  
err = ERR_OK;
return err;
}

/***********************************************************************
º¯ÊýÃû³Æ£ºtcp_server_accept(void *arg, struct tcp_pcb *pcb,struct pbuf *p,err_t err)
¹¦    ÄÜ£º»Øµ÷º¯Êý
×¢    Ò⣺ÕâÊÇÒ»¸ö»Øµ÷º¯Êý£¬µ±Ò»¸öÁ¬½ÓÒѾ­½ÓÊÜʱ»á±»µ÷ÓÃ
***********************************************************************/
static err_t tcp_server_accept(void *arg,struct tcp_pcb *pcb,err_t err)
{
tcp_setprio(pcb, TCP_PRIO_MIN);   /* ÉèÖûص÷º¯ÊýÓÅÏȼ¶£¬µ±´æÔÚ¼¸¸öÁ¬½ÓʱÌرðÖØÒª,´Ëº¯Êý±ØÐëµ÷ÓÃ*/
tcp_recv(pcb,tcp_server_recv);     /* ÉèÖÃTCP¶Îµ½Ê±µÄ»Øµ÷º¯Êý */
err = ERR_OK;
return err;
}

/***********************************************************************
º¯ÊýÃû³Æ£ºTCP_server_init(void)
¹¦    ÄÜ£ºÍê³ÉTCP·þÎñÆ÷µÄ³õʼ»¯£¬Ö÷ÒªÊÇʹµÃTCPͨѶ¿ì½øÈë¼àÌý״̬
***********************************************************************/
void TCP_server_init(void)
{
struct tcp_pcb *pcb;
/*****************************************************/
pcb = tcp_new();         /* ½¨Á¢Í¨ÐŵÄTCP¿ØÖÆ¿é(pcb) */
tcp_bind(pcb,IP_ADDR_ANY,TCP_SERVER_PORT);      /* °ó¶¨±¾µØIPµØÖ·ºÍ¶Ë¿ÚºÅ£¨×÷Ϊtcp·þÎñÆ÷£© */
pcb = tcp_listen(pcb);        /* ½øÈë¼àÌý״̬ */
tcp_accept(pcb,tcp_server_accept);        /* ÉèÖÃÓÐÁ¬½ÓÇëÇóʱµÄ»Øµ÷º¯Êý */
}


收藏 评论1 发布时间:2019-4-1 00:30

举报

1个回答
butterflyspring 回答时间:2019-5-31 16:38:37
看一下官方的例程,或者试着跑一下,参照一下
[‎5/‎31/‎2019 4:35 PM]  Felix SHI:  
stm32cube_fw_f4_v1210\STM32Cube_FW_F4_V1.21.0\Projects\STM324xG_EVAL\Applications\LwIP\LwIP_TCP_Echo_Client\Src

评分

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

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版