OpenEdv-开源电子网

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

ESP8266的TCP服务器模式得不到ip地址

[复制链接]

13

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
232
金钱
232
注册时间
2021-5-7
在线时间
102 小时
发表于 2021-10-22 09:45:52 | 显示全部楼层 |阅读模式
1金钱
我把ESP8266例程改了下,改成直接设置成TCP服务器模式,但就是没有得到ip地址,用串口打印也没有,连接wifi的名字和密码都改了的。
下面是我改的代码,请问哪有问题?
u8 netpro=0;        //网络模式
        u8 key;
        u8 timex=0;
        u8 ipbuf[16];         //IP缓存
        u8 *p;
        u16 t=999;                //加速第一次获取链接状态
        u8 res=0;
        u16 rlen=0;
        u8 constate=0;        //连接状态

        p=mymalloc(SRAMIN,32);                                                        //申请32字节内存
        atk_8266_send_cmd("AT+CWMODE=1","OK",50);                //设置WIFI STA模式
        atk_8266_send_cmd("AT+RST","OK",20);                //DHCP服务器关闭(仅AP模式有效)
        delay_ms(1000);         //延时3S等待重启成功
        delay_ms(1000);
        delay_ms(1000);
        delay_ms(1000);
       
        //设置连接到的WIFI网络名称/加密方式/密码,这几个参数需要根据您自己的路由器设置进行修改!!
        sprintf((char*)p,"AT+CWJAP=\"%s\",\"%s\"",wifista_ssid,wifista_password);//设置无线参数:ssid,密码
       
        while(atk_8266_send_cmd(p,"WIFI GOT IP",300))printf("!!!");                                        //连接目标路由器,并且获得IP
       
        //atk_8266_at_response(1);

                //TCP Server
                LCD_Clear(WHITE);
                POINT_COLOR=RED;

                Show_Str_Mid(0,30,"ATK-ESP WIFI-STA 测试141",16,240);
                Show_Str(30,50,200,16,"正在配置ATK-ESP模块,请稍等...142",12,0);
                atk_8266_send_cmd("AT+CIPMUX=1","OK",20);        //0:单连接,1:多连接
                sprintf((char*)p,"AT+CIPSERVER=1,%s",(u8*)portnum);    //开启Server模式(0,关闭;1,打开),端口号为portnum
                atk_8266_send_cmd(p,"OK",50);

                        LCD_Clear(WHITE);
                        POINT_COLOR=RED;

                        Show_Str_Mid(0,30,"ATK-ESP WIFI-STA 测试152",16,240);
                        Show_Str(30,50,200,16,"正在配置ATK-ESP模块,请稍等...153",12,0);                       
                        LCD_Fill(30,50,239,50+12,WHITE);                        //清除之前的显示
                       
                        Show_Str(30,50,200,16,"WK_UP:退出测试  KEY0:发送数据156",12,0);
                        LCD_Fill(30,80,239,80+12,WHITE);
                        atk_8266_get_wanip(ipbuf);//服务器模式,获取WAN IP
                        printf("3333333IP地址:%s",(char *)ipbuf);

                        sprintf((char*)p,"IP地址:%s 端口:%s",ipbuf,(u8*)portnum);
                        printf("ip:%s",ipbuf);
       
                        Show_Str(30,65,200,12,p,12,0);                                //显示IP地址和端口       
                        Show_Str(30,80,200,12,"状态:",12,0);                 //连接状态
                        Show_Str(120,80,200,12,"模式:",12,0);                 //连接状态
                        Show_Str(30,100,200,12,"发送数据:",12,0);         //发送数据
                        Show_Str(30,115,200,12,"接收数据:",12,0);        //接收数据
                        atk_8266_wificonf_show(30,180,"请设置路由器无线参数为:",(u8*)wifista_ssid,(u8*)wifista_encryption,(u8*)wifista_password);
                        POINT_COLOR=BLUE;
                        Show_Str(120+30,80,200,12,(u8*)ATK_ESP8266_WORKMODE_TBL[netpro],12,0);                 //连接状态
                        USART3_RX_STA=0;

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

使用道具 举报

6

主题

889

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1468
金钱
1468
注册时间
2020-8-19
在线时间
333 小时
发表于 2021-10-22 11:01:22 | 显示全部楼层
战舰V3和精英ESP8266 WIFI-自动连接TCP服务器发数据.zip (10.73 MB, 下载次数: 276)
回复

使用道具 举报

13

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
232
金钱
232
注册时间
2021-5-7
在线时间
102 小时
 楼主| 发表于 2021-10-25 13:57:33 | 显示全部楼层
bin133 发表于 2021-10-22 11:01
你可以参考一下这个代码

谢了,已解决,原因是硬件来不及响应的问题
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-25 08:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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