AT指令发送网络数据的两种方式比较

    使用联网模块进行应用程序开发中,比较常使用到的联网模块,如4G模块,Wi-Fi模块等,使用AT指令方式发送数据时,查看数据手册,发现一般都支持两种数据发送方式。
    1:指定数据长度。AT+CIPSEND=0,n。其中n代表本次发送的数据长度。
    2:不指定数据长度。AT+CIPSEND=0, 发送该指令后等待模块返回 “>”字符,再发送数据,并在数据发送完成后,发送<ctrl+z>字符,即十六进制中的0x1a.
    使用两种数据发送方式都可以实现发送指定数据到连接端的功能,但基于不同的应用场景,使用不同的方式发送数据会有不同的抗干扰性效果。
    假设在某个场景中,服务端(即数据接收端)使用固定结束标志符作为判断一次数据接收完成的方法。4G模块等与MCU使用串口方式连接,而在串口通信中,有可能会存在一些干扰,使得4G模块在接收MCU的数据时会收收到一些无效字符(这些字符并不是MCU发送的,可能是串口在通信过程中的一些干扰产生的无效数据,通常是'\0'字符),使用第一种数据发送方式的话,由于指定了数据长度,因此4G模块会因为计算了收到的无效字符而多计算了实际的数据长度,出现少发实际字符的情况,导致最后的数据结束符不完整。因此本次发送到服务端的数据服务端不会判断为一次完成的数据,会继续接收。在下一次发送数据时,原本是一次正常的数据发送,但服务端因为上一次数据还没有接收完成,因此会把本次数据和上次发送的无效数据重叠在一起,产生“数据叠包”现象。如果服务端的程序没有做相关的处理,可能会认为这收到的是无效数据,跳过处理。
    使用第二种数据发送方式,即使在第一次发送数据时出现了数据干扰,但由于模块会等待到MCU发送0x1a后再把数据发送出去。因此可以保证每一次数据发送都是完全的,至少不会出现少发字符的情况。也因此可以避免由于服务端使用结束符判断接收完成的方法而产生的“数据叠包”现象。
    

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
# esp8266ATPackage stm32通过wifi方式进行数据通信时通常采用ESP8266模块,最常用的方法就是通过AT指令与esp模块进行交互,本项目对常用的AT指令进行封装成**协议**,使用户调用简单的函数即可实现热点连接、服务器连接、开启热点、创建服务器等功能。并提供了两种数据发送模式,用户可根据项目需要选择101协议数据封装发送或无数据封装发送数据解析也可以根据项目需要设置解析或不解析。协议具有很强的可扩展性,能够根据自己的项目需求对AT指令进行裁剪和扩展。 * 版本功能: * 1.客户端模式下自动连接WiFi热点 * 2.客户端模式下自动连接服务器 * 3.服务器模式下自动创建wifi热点 * 4.服务器模式下自动开启TCP服务器 * 5.服务器模式下输出TCP服务器的IP地址及端口号,DISPLAY_AT_INFO为1的情况下 * 6.可实时打开和关闭透传模式 * 7.可实时更改接收数据的解析模式(需要手动更改dataAnalyzeFlag的值) * 8.提供两种数据封装模式,101协议格式和无封装格式,分别通过调用sendData101、sendData函数实现 * 9.想起来了再写 * 发送模式及其性能(101协议封装为模式1,无封装为模式2): * 在非透传模式下,模式1最快300ms/次、模式2最快200ms/次 * 在透传模式下,模式1与模式2都能达到30ms/次,实测50ms/次时串口能够正常回显数据,小于50ms时可能会出错 ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值