OpenEdv-开源电子网

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

EPS8266初学遇到问题求解。

[复制链接]

17

主题

181

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2017-7-24
在线时间
117 小时
发表于 2018-2-11 18:42:57 | 显示全部楼层 |阅读模式
1金钱
最近在学习wifi模块相关的知识,也在用原子的例程来练习。但最近遇到一个问题,就是我用stm32的串口2与8266相连,确定连线没有问题。 串口1与电脑相连,方便看数据回传。现在我想实现stm32通过串口2往8266中发送命令,然后接收8266传回来的数据,通过串口1发送到电脑这个功能。以读取信号强度为例:
1、发送 AT+CWLAP 命令;
2、收到8266回传数据。
3、通过串口1发送出来。
结果:经多次尝试,均没有想象,个人分析是和哪里产生了数据对冲或者是时间对冲,但是由于例程的确有点复杂。所以请大佬们指点一二。帮忙查查问题。附件是原子的例程。和个人写的一个实现上述过程的小代码;(串口1接电脑,串口2接模块[mw_shl_code=c,true]                                                                                atk_8266_send_cmd("AT+CWLAP","OK",200);
                                                                        delay_ms(200);
                                                                        if(USART2_RX_STA&0x8000)
                                                                        {                                          
                                                                                len=USART2_RX_STA&0x3fff;
                                                                                printf("\r\n您要发送的数据:\r\n\r\n");
                                                                                for(t=0;t<len;t++)
                                                                                {
                                                                                        USART_SendData(USART1, USART2_RX_BUF[t]);
                                                                                        while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
                                                                                }
                                                                                printf("\r\n\r\n");
                                                                                USART2_RX_STA=0;
}[/mw_shl_code])

(库函数版本,适合MiniSTM32开发板)扩展实验13 ATK-ESP8266WIFI模块实验.rar

1.03 MB, 下载次数: 124

原子的wifi例程

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

使用道具 举报

17

主题

181

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2017-7-24
在线时间
117 小时
 楼主| 发表于 2018-2-11 19:08:09 | 显示全部楼层
上述代码思路是这样:
1、STM32发送命令到8266;
2、若接收到消息则进入串口2的中断;
3、串口2中断中会接收完数据,判断串口2数据是否接收完成;
4、用len取出串口2数据值的数量;
5、输出串口2的缓存数据到串口1,并通过while语句保证当前数据已发出;
6、STA数目置0;
回复

使用道具 举报

17

主题

181

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2017-7-24
在线时间
117 小时
 楼主| 发表于 2018-2-11 22:17:47 | 显示全部楼层
顶一下
回复

使用道具 举报

0

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
333
金钱
333
注册时间
2016-9-14
在线时间
39 小时
发表于 2018-2-12 09:39:28 | 显示全部楼层
要不你先看看串口2收到的数据对不对?如果收到了可能是串口1打印的问题
路漫漫其修远兮,吾将上下而求索
回复

使用道具 举报

17

主题

181

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2017-7-24
在线时间
117 小时
 楼主| 发表于 2018-2-12 10:47:27 | 显示全部楼层
萧萧梧桐 发表于 2018-2-12 09:39
要不你先看看串口2收到的数据对不对?如果收到了可能是串口1打印的问题

没有正常接收数据,我怀疑都没正常触发接收中断
回复

使用道具 举报

0

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
333
金钱
333
注册时间
2016-9-14
在线时间
39 小时
发表于 2018-2-12 11:07:26 | 显示全部楼层
q247341184 发表于 2018-2-12 10:47
没有正常接收数据,我怀疑都没正常触发接收中断

那再看看8266接收命令成功了没?接收成功了再看看8266是否正确回传数据?然后再看stm32串口2接收对不对
路漫漫其修远兮,吾将上下而求索
回复

使用道具 举报

17

主题

181

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2017-7-24
在线时间
117 小时
 楼主| 发表于 2018-2-12 11:36:01 | 显示全部楼层
萧萧梧桐 发表于 2018-2-12 11:07
那再看看8266接收命令成功了没?接收成功了再看看8266是否正确回传数据?然后再看stm32串口2接收对不对

接收命令应该是没问题,同一个函数,发送其他命令都能正确回传,就这个命令不行。8266连接PC的时候,数据回传是没问题的,但是当8266接上STM32的串口2以后,没办法用PC监控,从32读取缓存数据是没有数据的。我在怀疑,进中断里之后的问题
回复

使用道具 举报

0

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
333
金钱
333
注册时间
2016-9-14
在线时间
39 小时
发表于 2018-2-12 11:43:30 | 显示全部楼层
q247341184 发表于 2018-2-12 11:36
接收命令应该是没问题,同一个函数,发送其他命令都能正确回传,就这个命令不行。8266连接PC的时候,数据 ...

发送其他命令都能正确回传,就这个命令不行。??
是不是你这个指令用错了?

AT+CWLAP 列出当前可用 AP
执行指令
AT+CWLAP
响应
终端返回 AP列表
+ CWLAP: <ecn>,<ssid>,<rssi>

OK
ERROR
参数说明
< ecn >0 OPEN
1 WEP
2 WPA_PSK
3 WPA2_PSK
4 WPA_WPA2_PSK
<ssid>字符串参数,接入点名称
<rssi>信号强度
路漫漫其修远兮,吾将上下而求索
回复

使用道具 举报

17

主题

181

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2017-7-24
在线时间
117 小时
 楼主| 发表于 2018-2-12 12:01:27 | 显示全部楼层
萧萧梧桐 发表于 2018-2-12 11:43
发送其他命令都能正确回传,就这个命令不行。??
是不是你这个指令用错了?

发送这个指令肯定是没问题,包括后面的\r\n都处理好了。但是我现在不太明白的就是,应该不应该要求期盼值OK。因为原子的例程里,许多是要求回传判定OK的
回复

使用道具 举报

17

主题

181

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2017-7-24
在线时间
117 小时
 楼主| 发表于 2018-2-12 12:01:29 | 显示全部楼层
萧萧梧桐 发表于 2018-2-12 11:43
发送其他命令都能正确回传,就这个命令不行。??
是不是你这个指令用错了?

发送这个指令肯定是没问题,包括后面的\r\n都处理好了。但是我现在不太明白的就是,应该不应该要求期盼值OK。因为原子的例程里,许多是要求回传判定OK的
回复

使用道具 举报

17

主题

181

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2017-7-24
在线时间
117 小时
 楼主| 发表于 2018-2-12 20:26:49 | 显示全部楼层
求原子哥帮忙  @正点原子
回复

使用道具 举报

17

主题

181

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2017-7-24
在线时间
117 小时
 楼主| 发表于 2018-2-13 17:17:18 | 显示全部楼层
顶顶顶顶
回复

使用道具 举报

17

主题

181

帖子

0

精华

高级会员

Rank: 4

积分
504
金钱
504
注册时间
2017-7-24
在线时间
117 小时
 楼主| 发表于 2018-2-14 21:23:12 | 显示全部楼层
111111
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 10:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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