OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6099|回复: 4

STM32网络通信问题tcp_server_test();

[复制链接]

1

主题

4

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2019-8-17
在线时间
3 小时
发表于 2021-7-9 15:36:33 | 显示全部楼层 |阅读模式
1金钱
为什么初始化lwip 也初始化成功了,但是        tcp_server_test();总是卡在它的这个while死循环里这个是我的tcp_server_test();
void tcp_server_test(void)
{
        err_t err;  
        struct tcp_pcb *tcppcbnew;         
        struct tcp_pcb *tcppcbconn;         

       

        uint8_t *tbuf;

        uint8_t res=0;               


               
  tbuf=mymalloc(0,200);       
        if(tbuf==NULL)return ;                //内存申请失败了,直接退出
        sprintf((char*)tbuf,"Server IP:%d.%d.%d.%d",lwipdev.ip[0],lwipdev.ip[1],lwipdev.ip[2],lwipdev.ip[3]);
        printf("Server IP:%d.%d.%d.%d\r\n",lwipdev.ip[0],lwipdev.ip[1],lwipdev.ip[2],lwipdev.ip[3]);
        sprintf((char*)tbuf,"Server Port:%d",TCP_SERVER_PORT);
        printf("Server Port:%d",TCP_SERVER_PORT);
        tcppcbnew=tcp_new();       
        if(tcppcbnew)                       
        {
                err=tcp_bind(tcppcbnew,IP_ADDR_ANY,TCP_SERVER_PORT);
                if(err==ERR_OK)       
                {
                        tcppcbconn=tcp_listen(tcppcbnew);                        
                        tcp_accept(tcppcbconn,tcp_server_accept);        
                }else res=1;  
        }else res=1;
       
        while(res==0)
        {

           if(key==1)
                {
       
                        tcp_server_flag|=1<<7;
                       
     if(send_flag==1)
                        {
                   MCU_to_TCP();
                   flag_timer=0;
                         send_flag=0;
                        }
                }
                if(tcp_server_flag&1<<6)
                {
                       
                        tcp_server_flag&=~(1<<6);
                }
                if(tcp_server_flag&1<<5)
                {
               
       
                }else if((tcp_server_flag&1<<5)==0)
                {

                }
                lwip_periodic_handle();
                lwip_pkt_handle();

  }               
        tcp_server_connection_close(tcppcbnew,0);//关闭TCP Server连接
        tcp_server_connection_close(tcppcbconn,0);//关闭TCP Server连接
        tcp_server_remove_timewait();
        memset(tcppcbnew,0,sizeof(struct tcp_pcb));
        memset(tcppcbconn,0,sizeof(struct tcp_pcb));
        myfree(0,tbuf);

}



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2019-8-17
在线时间
3 小时
 楼主| 发表于 2021-7-9 16:59:16 | 显示全部楼层
还有就是 我通过32连接DM9000然后引出的网口 通过网线 接电脑 电脑上显示网络电缆已拔出[img][/img]
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2019-8-17
在线时间
3 小时
 楼主| 发表于 2021-7-9 17:01:31 | 显示全部楼层
这个怎么解决呢  
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2021-7-10 01:51:00 | 显示全部楼层
直接测试开发板例程正常么
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2019-8-17
在线时间
3 小时
 楼主| 发表于 2021-7-10 09:34:06 | 显示全部楼层
正点原子 发表于 2021-7-10 01:51
直接测试开发板例程正常么

并没有,我是移植的开发板的历程 使用的STM32L4R9 对照战舰F1的DM9000的lwip移植 视频,,现在我初始化能够通过,能够打印出IP地址这些东西,但是与电脑连接后显示 网线已拔出(明明连接都没有问题)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 11:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表