OpenEdv-开源电子网

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

用ATK-ESP8266模块在AP模式下模块配置为TCP服务器与电脑(配置为TCP服务端)进行数据传输可是数据延时非常大间隔两秒才发送一次

[复制链接]

15

主题

91

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
255
金钱
255
注册时间
2019-11-6
在线时间
50 小时
发表于 2020-5-9 18:21:58 | 显示全部楼层 |阅读模式
3金钱
本帖最后由 KillerO 于 2020-11-13 00:45 编辑

为什么会延时那么大呢,求教大佬们,要怎么解决这个问题呢?-----------修改好的代码如图111
无标题1png.png
无标题.png
111.png

ESP_8266_LED.zip

3.83 MB, 下载次数: 341

最佳答案

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

使用道具 举报

15

主题

91

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
255
金钱
255
注册时间
2019-11-6
在线时间
50 小时
 楼主| 发表于 2020-5-10 20:46:41 | 显示全部楼层
问题解决了,原因是发送数据时,要在发送数据长度命令函数里面的参数改个你要发送的字符串大小,不一定按照例程是25,所以我又封装了一个函数测试,但是由于本人C语言基础较差又遇上了问题,导致我发送不出去,程序里的那个warning,其实是一个error。
void Data_Test(u8*p)
{
        char a[15];
        u8* buff;
        if(USART3_RX_STA&0x8000)
        {
                printf("USART3_RX_BUF=%s\r\n",USART3_RX_BUF);
                sprintf(a,"%s",USART3_RX_BUF);
                printf("a=%s",a);
                if(strstr((const char*)a,"on"))  
                {       
                        GPIO_ResetBits(GPIOB,GPIO_Pin_5);
                        sprintf((char*)buff,"AT+CIPSEND=0,\"%d\"",strlen(p));  //这行有问题,编译提示main.c(31): warning:  #167-D: argument of type "u8 *" is incompatible with parameter of type "const char *"
                        esp8266_send_cmd(buff,"OK",200);
                        atk_8266_send_data(p,"OK",100);
                }       
                USART3_RX_STA=0;
        }
}
回复

使用道具 举报

0

主题

70

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2019-7-11
在线时间
1 小时
发表于 2020-5-9 18:21:59 | 显示全部楼层
顶起!!!!!!
回复

使用道具 举报

15

主题

91

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
255
金钱
255
注册时间
2019-11-6
在线时间
50 小时
 楼主| 发表于 2020-5-9 18:21:59 | 显示全部楼层
问题解决了,原因是发送数据长度命令函数里的数据长度参数是你要发送的字符串的大小而不是像例程里的25,所以本人封装了一个函数用于数据收发,但由于本人C语言基础较差,所以又遇到问题了,请各位大佬帮忙解决一下
void Data_Test(u8*p)
{
        char a[15];
        u8* buff;
        if(USART3_RX_STA&0x8000)
        {
                printf("USART3_RX_BUF=%s\r\n",USART3_RX_BUF);
                sprintf(a,"%s",USART3_RX_BUF);
                printf("a=%s",a);
                if(strstr((const char*)a,"on"))  
                {       
                        GPIO_ResetBits(GPIOB,GPIO_Pin_5);
                        sprintf((char*)buff,"AT+CIPSEND=0,\"%d\"",strlen(p)); //这句有问题,提示 main.c(31): warning:  #167-D: argument of type "u8 *" is incompatible with parameter of type "const char *"
                        esp8266_send_cmd(buff,"OK",200);
                        atk_8266_send_data(p,"OK",100);
                }       
                USART3_RX_STA=0;
        }
}
回复

使用道具 举报

15

主题

91

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
255
金钱
255
注册时间
2019-11-6
在线时间
50 小时
 楼主| 发表于 2020-5-9 18:22:19 | 显示全部楼层
在线等
回复

使用道具 举报

0

主题

61

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2018-12-27
在线时间
0 小时
发表于 2020-5-9 18:22:19 | 显示全部楼层
不懂,只能认认真真跟着原子哥学习先,帮顶
回复

使用道具 举报

15

主题

91

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
255
金钱
255
注册时间
2019-11-6
在线时间
50 小时
 楼主| 发表于 2020-5-9 19:15:42 | 显示全部楼层
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2020-5-9 23:11:49 | 显示全部楼层
是不是网络不好哦?
回复

使用道具 举报

15

主题

91

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
255
金钱
255
注册时间
2019-11-6
在线时间
50 小时
 楼主| 发表于 2020-5-10 13:09:05 | 显示全部楼层
正点原子 发表于 2020-5-9 23:11
是不是网络不好哦?

应该不是这个原因吧,你可以在你那边测试一下我这个程序?
回复

使用道具 举报

15

主题

91

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
255
金钱
255
注册时间
2019-11-6
在线时间
50 小时
 楼主| 发表于 2020-5-10 20:40:54 | 显示全部楼层
问题解决了,原因就是发送数据的时候,数据发送命令函数的参数不一定是25,而是根据你所发的字符串大少而定,经过实验,确实如此。所以我封装了一个函数,但因为我C语言基础较差又又遇到了数据类型问题
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2020-3-24
在线时间
7 小时
发表于 2020-5-11 17:16:00 | 显示全部楼层
楼主能加QQ,咨询一下esp8266ap模式的相关问题吗,我QQ437414372
回复

使用道具 举报

15

主题

91

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
255
金钱
255
注册时间
2019-11-6
在线时间
50 小时
 楼主| 发表于 2020-5-12 11:11:32 | 显示全部楼层
imbalhr 发表于 2020-5-11 17:16
楼主能加QQ,咨询一下esp8266ap模式的相关问题吗,我QQ437414372

我也是初学者,你直接把问题发帖或者在评论里发出来就好了,我会的就解答
回复

使用道具 举报

0

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2020-5-5
在线时间
16 小时
发表于 2020-5-14 09:00:35 | 显示全部楼层
学习一下,赞赞
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2020-3-14
在线时间
2 小时
发表于 2020-5-15 18:29:22 | 显示全部楼层
膜拜大佬,大佬们能不能帮我看看,我用esp8266,在STA模式下手机或者电脑热点都能连上,但是家里的路由器的wifi就是连接不上,各位大佬帮帮忙,万分感谢!
回复

使用道具 举报

15

主题

91

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
255
金钱
255
注册时间
2019-11-6
在线时间
50 小时
 楼主| 发表于 2020-5-17 17:03:09 | 显示全部楼层
jun625 发表于 2020-5-15 18:29
膜拜大佬,大佬们能不能帮我看看,我用esp8266,在STA模式下手机或者电脑热点都能连上,但是家里的路由器的 ...

我也想要一个简单一点的sta配置程序,不要例程那么复杂的
回复

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2020-9-11
在线时间
7 小时
发表于 2020-10-3 16:25:15 | 显示全部楼层
新手有疑问,既然是配置8266为AP模式,为什么这里又要重新设置它为STA模式

  1. void atk_82666_STAConfig(void)
  2. {
  3. //        char p[6];
  4. //        sprintf(p,"AT+CWMODE=%d",Mode);
  5.         atk_8266_send_cmd("AT+CWMODE=1","OK",50);
  6.         //Wifi模块重启
  7.         atk_8266_send_cmd("AT+RST","OK",20);
  8.         delay_ms(1000);         //延时3S等待重启成功
  9.         delay_ms(1000);
  10.         delay_ms(1000);       
  11.     //STA模式
  12.         atk_8266_send_cmd("AT+CWJAP="Hero","sss666888"","OK",200);
  13.         atk_8266_send_cmd("AT+CIPMUX=1","OK",20);
  14.         atk_8266_send_cmd("AT+CIPSERVER=1,8086","OK",200);
  15.        
  16. //        atk_8266_send_cmd("AT+CIPMODE=1","OK",50);                // 开启透传
  17. //        atk_8266_send_cmd("AT+CIPSEND=0,25","OK",50);               
  18. }
复制代码
回复

使用道具 举报

15

主题

91

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
255
金钱
255
注册时间
2019-11-6
在线时间
50 小时
 楼主| 发表于 2020-10-14 23:32:18 | 显示全部楼层
wyqnew 发表于 2020-10-3 16:25
新手有疑问,既然是配置8266为AP模式,为什么这里又要重新设置它为STA模式

我不知道这个是哪里的代码,如果你是用我的程序的话,单纯使用AP模式是不用重新设置它为STA模式的
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2020-8-22
在线时间
11 小时
发表于 2020-10-16 16:22:53 | 显示全部楼层
楼主你的问题解决了吗
回复

使用道具 举报

0

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2019-9-26
在线时间
34 小时
发表于 2020-10-29 10:54:06 | 显示全部楼层
你好,我也正在用ATK-ESP8266模块,我菜鸟,能不能发个你完成好的程序
回复

使用道具 举报

15

主题

91

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
255
金钱
255
注册时间
2019-11-6
在线时间
50 小时
 楼主| 发表于 2020-11-13 00:28:16 | 显示全部楼层
鹤先生 发表于 2020-10-29 10:54
你好,我也正在用ATK-ESP8266模块,我菜鸟,能不能发个你完成好的程序

可以的加我qq:1525218438
回复

使用道具 举报

15

主题

91

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
255
金钱
255
注册时间
2019-11-6
在线时间
50 小时
 楼主| 发表于 2020-11-13 00:31:51 | 显示全部楼层
jo总管 发表于 2020-10-16 16:22
楼主你的问题解决了吗

解决了,这样吧,我把我完全写好的发出来吧,有需要的话,可以借鉴一下,共同进步
回复

使用道具 举报

15

主题

91

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
255
金钱
255
注册时间
2019-11-6
在线时间
50 小时
 楼主| 发表于 2020-11-13 00:38:43 | 显示全部楼层
wyqnew 发表于 2020-10-3 16:25
新手有疑问,既然是配置8266为AP模式,为什么这里又要重新设置它为STA模式

这应该是我当时调试的时候,没有弄好的地方,你可以直接将esp8266配置成STA+AP模式,也许是我当初就是想这样做的,时间隔太久了,记不清楚了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 10:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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