搜索
bottom↓
回复: 12

ESP8266在AT指令读模块状态的时候,正好服务器发送数据过来。

[复制链接]

出0入4汤圆

发表于 2019-12-2 23:12:40 | 显示全部楼层 |阅读模式
ESP8266在AT指令读模块状态的时候,正好服务器发送数据过来。  会怎样? AT指令的回应消息和服务器发过来的消息混乱的从RX输出?还是有规则排序的输出?  如何在用AT+CIPSEND  发送数据的时候,不丢数据的接收服务端发送过来的数据?  也就是双向可靠防止数据的碰撞。

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2019-12-2 23:19:06 | 显示全部楼层
如果你用 ESP8266 AT 固件的主动模式,那 MCU 接收数据要有一个缓冲区,首先保证 ESP8266 发过来的数据不会丢失
处理这些收到的数据时,像 +IPD 和一些连接状态的包可能会混在其他指令的相应数据中
ESP8266 的 AT 固件只能保证它通过一个 sendData() 发过来的数据不被打乱,但有时像指令的 OK\r\n 可能是单独发送的,与前边的数据中间可能就会有 +IPD 包

出0入0汤圆

发表于 2019-12-2 23:21:52 | 显示全部楼层
另外数据量大的话,要想可靠还要启用 UART 的流控,最少要启用 ESP8266 一侧的 RTS
否则你可以跑个大数据量的测试看看,虽然 ESP8266 的 UART 的 RX FIFO 据说有 96 字节,但有时它貌似在忙于处理其他任务时 UART 接收可能会丢数据
结果就是你发过去的数据它没收全,一直在那等,再发其他指令会被当成数据处理

出870入263汤圆

发表于 2019-12-3 09:58:51 | 显示全部楼层
直接用MDK最近发布的pack包吧,对于你提出的疑问都处理得很完善。
在此之前,我自己写过类似的AT框架处理这些过程;但现在有现成代码可用了,后来的开发者真的越来越方便了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-12-3 10:55:39 | 显示全部楼层
armstrong 发表于 2019-12-3 09:58
直接用MDK最近发布的pack包吧,对于你提出的疑问都处理得很完善。
在此之前,我自己写过类似的AT框架处理这 ...


这个驱动之前看 Eric2013 的文章有介绍,还看了眼 github 上的代码,貌似没找到被动模式和 smartconfig 相关的内容,不知道是不是我看漏了
不过现在有官方这个驱动肯定是更方便了,之前开源的找过一圈就没有可用的,只有一个 https://github.com/MaJerle/ESP_AT_Lib 相对好一些,但代码体积比较大

出870入263汤圆

发表于 2019-12-3 15:01:26 | 显示全部楼层
wudicgi 发表于 2019-12-3 10:55
这个驱动之前看 Eric2013 的文章有介绍,还看了眼 github 上的代码,貌似没找到被动模式和 smartconfig  ...

这是2019-12-02,昨天刚发布的,你应该是看漏了。
我看了里面的代码(PACK\ARM\CMSIS-Driver\2.5.0\WiFi\ESP8266\ESP8266.c),里面把被动应答处理的妥妥的。

出0入0汤圆

发表于 2019-12-3 15:40:59 | 显示全部楼层
armstrong 发表于 2019-12-3 15:01
这是2019-12-02,昨天刚发布的,你应该是看漏了。
我看了里面的代码(PACK\ARM\CMSIS-Driver\2.5.0\WiFi\ ...

我说的被动模式是这个东东,通过 AT+CIPRECVMODE 指令设置的
被动是对于 ESP8266 来说的,它被动接收 MCU 的指令后才返回数据



我试过数据量大时,由于 MCU 的 RAM 有限不能把所有接收到的数据都存下来,
只能通过这个被动模式让 ESP8266 在它自己的 buffer 满时对连接进行阻塞,数据才能可靠传输和处理

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-12-3 15:41:49 | 显示全部楼层
armstrong 发表于 2019-12-3 15:01
这是2019-12-02,昨天刚发布的,你应该是看漏了。
我看了里面的代码(PACK\ARM\CMSIS-Driver\2.5.0\WiFi\ ...

我把 Keil 这个 2.5.0 的包下载下来看了,没找到 RECVMODE

出870入263汤圆

发表于 2019-12-3 17:57:38 | 显示全部楼层
wudicgi 发表于 2019-12-3 15:41
我把 Keil 这个 2.5.0 的包下载下来看了,没找到 RECVMODE

原来你是说这个被动模式呀,我以为MCU这头被动接收“+IPD”报文呢。
我以前没用过ESP模块的被动模式,因为来得及处理所有数据。串口通信波特率设置为115200,也就11kB/s,写入spi-flash(包括擦除和编程)都来得及的。
模块有被动模式的话就更好办了!

出0入0汤圆

发表于 2019-12-4 18:46:52 | 显示全部楼层
wudicgi 发表于 2019-12-3 15:40
我说的被动模式是这个东东,通过 AT+CIPRECVMODE 指令设置的
被动是对于 ESP8266 来说的,它被动接收 MCU ...

这个驱动对应的ESP8266固件是官方那个AT固件?

出0入0汤圆

发表于 2019-12-5 22:22:31 | 显示全部楼层
rom 发表于 2019-12-4 18:46
这个驱动对应的ESP8266固件是官方那个AT固件?

是官方的 AT 固件
官方的固件不开源,估计也没人再单独开发个别的 AT 固件

出0入0汤圆

发表于 2019-12-5 23:23:17 | 显示全部楼层
wudicgi 发表于 2019-12-5 22:22
是官方的 AT 固件
官方的固件不开源,估计也没人再单独开发个别的 AT 固件
...

https://github.com/espressif/ESP8266_AT  开源的

出0入0汤圆

发表于 2019-12-6 00:12:31 | 显示全部楼层
rom 发表于 2019-12-5 23:23
https://github.com/espressif/ESP8266_AT  开源的

这个我知道,你看一下最后更新日期,官方已经 N 年不开源了
现在只提供个库,以允许客户自己添加额外的 AT 指令后再编译成固件
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-12 01:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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