OpenEdv-开源电子网

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

atk-esp8266的连接问题,恳请各位前辈帮忙QAQ

[复制链接]

1

主题

5

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2018-7-22
在线时间
5 小时
发表于 2018-7-22 15:43:29 | 显示全部楼层 |阅读模式
10金钱
谢谢各位前辈点进来,先谢过各位前辈了。我最近在参加学校的电赛,需要用到STM32和ESP8266模块之间做通信,我用的是咱们正点原子的战舰V3和ATK-8266,程序也是按照标准历程改的,只保留了wifi透传的功能。
这是配置wifi透传部分的代码:
#include "common.h"
#include "stdlib.h"
u8 atk_8266_wifista_test(void)
{
        u16 rlen=0;
        u8 *p;
        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_CUR=\"%s\",\"%s\"",wifista_ssid,wifista_password);//设置无线参数:ssid,密码
        while(atk_8266_send_cmd(p,"WIFI GOT IP",300));                                        //连接目标路由器,并且获得IP
        delay_ms(1000);
        atk_8266_send_cmd("AT+CIPMUX=0","OK",20);   //0:单连接,1:多连接       
        delay_ms(1000);
  sprintf((char*)p,"AT+CIPSTART=\"UDP\",\"192.168.43.1\",8087");    //配置目标TCP服务器
  while(atk_8266_send_cmd(p,"OK",200));
        delay_ms(1000);
        atk_8266_send_cmd("AT+CIPMODE=1","OK",200);                          //传输模式为:透传       
       delay_ms(1000);
        USART3_RX_STA=0;
        atk_8266_quit_trans();  
       delay_ms(1000);                                               
        sprintf((char*)p,"ATK-8266测试\r\n");//测试数据
        atk_8266_send_cmd("AT+CIPSEND","OK",20);  //开始透传  
        u3_printf("%s",p);
        delay_ms(1000);       
        while(1)
                {                                       
                        if(USART3_RX_STA&0X8000)                //接收到一次数据了
                                {
                                        rlen=USART3_RX_STA&0X7FFF;        //得到本次接收到的数据长度
                                        USART3_RX_BUF[rlen]=0;                //添加结束符
                                        printf("%s",USART3_RX_BUF);        //发送到串口   
                                        USART3_RX_STA=0;
                                }  
                                atk_8266_at_response(1);
                }       
}



这个是模块调用函数:
void atk_8266_test(void)
{
        while(atk_8266_send_cmd("AT","OK",20))//检查WIFI模块是否在线
        {
                atk_8266_quit_trans();//退出透传
                atk_8266_send_cmd("AT+CIPMODE=0","OK",200);  //关闭透传模式       
                delay_ms(800);
        }
                while(atk_8266_send_cmd("ATE0","OK",20));//关闭回显
        while(1)
        {
                delay_ms(10);
                atk_8266_at_response(1);//检查ATK-ESP8266模块发送过来的数据,及时上传给电脑
                atk_8266_wifista_test();//WIFI STA测试         
        }
}


这个是主函数:
int main(void)
{       
        delay_init();                     //延时函数初始化          
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
        uart_init(115200);                 //串口初始化为115200
        usart3_init(115200);                //初始化串口3
        delay_ms(1500);               
        atk_8266_test();         //进入ATK_ESP8266测试
}




上面的代码都是根据标准历程改的,数据收发的函数都没有动,问题就在于,如果修改上面那段加粗的代码,或者是删掉,即时是放在主函数里循环都会导致,模块停在连接路由器那一段,不能往下进行。
QQ截图20180722153957.png 这是保留加粗代码的电脑串口信息,能够正常通信。

QQ截图20180722153826.png 这是注释掉加粗代码while循环里的函数之后,代码的信息,串口信息就停在这了。

想了好些天都没有找出问题,希望各位前辈能帮帮忙
~( TロT)σ。
































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

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2018-7-22
在线时间
5 小时
 楼主| 发表于 2018-7-22 15:45:12 | 显示全部楼层
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2018-7-22
在线时间
5 小时
 楼主| 发表于 2018-7-22 15:47:46 | 显示全部楼层
搬好小椅子,坐着等ヾ(≧O≦)〃嗷~
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2018-7-22
在线时间
5 小时
 楼主| 发表于 2018-7-22 15:53:55 | 显示全部楼层
顶一下
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2018-7-22
在线时间
5 小时
 楼主| 发表于 2018-7-22 16:00:21 | 显示全部楼层
怎么没人来呢。。。。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2018-7-23 01:46:37 | 显示全部楼层
帮顶
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 08:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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