nrf51822单片机驱动ESP8266模块中遇到的问题总结

作者:李大闯    2017/08/26 18:01

在实际工作中,原本是使用nrf51822作为核心mcu,但是由于大批量数据传输的需要,所以外挂了一个ESP8266的模块,用于批量数据传输。本篇文章总结了在使用nrf51822单片机驱动ESP8266模块时遇到的一些问题及解决方法,在此记录备忘。




2016.5.5
ESP8266模块工作于STA模式还是AP模式?
看一下AP模式和STA模式的定义和区别
AP模式: Access Point,提供无线接入服务,允许其它无线设备接入,提供数据访问,一般的无线路由/网桥工作在该模式下。AP和AP之间允许相互连接
Sta模式: Station, 类似于无线终端,sta本身并不接受无线的接入,它可以连接到AP, 一般无线网卡即工作在该模式。

根据以上的意思,应该让模块工作在AP模式,这样的话手机就可以连接到模块的wifi进而建立连接并传输数据。

手机和模块之间使用TCP连接还是UDP连接?
一下TCP连接和UDP连接的定义和区别
1.TCP基于连接,UDP基于无连接;
2.对系统资源的要求(TCP较多,UDP少);
3.UDP程序结构较简单;
4.流模式与数据报模式 ;
5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。
考虑到数据传输准确性和可靠性的问题,使用TCP传输

ESP8266和手机建立TCP连接并通讯的过程(这里主要针对透传)
逐条发送以下指令:
AT+CWMODE=3         //设置ESP8266模块处于AP兼Station模式。这时可以用手机搜索到8266模块的wifi,连接上之后打开手机上安装的有人网络助手
                                    //创建TCP服务器。手机被分配的ip地址为192.168.4.2,选择端口号为8899
AT+CIPMUX=0            //使用单连接。透传模式下只能使用单连接。但是模块处于服务器模式时,必须使用多连接,所以说当模块设置为服务器时,不能使用透                                                                                                                                                
                                    //传。也即是说,如果要使用透传,则ESP8266必须扮演客户端的角色。
AT+CIPSTART="TCP","192.168.4.2",8899         //创建TCP连接,服务器的ip地址为192.168.4.2,端口号为8899
AT+CIPMODE=1         //设置启用透传模式
AT+CIPSEND               //进入透传。该指令后将进入透传模式,此后ESP8266将不能识别串口AT指令,所有串串口串接到的字符都将将透传到手机。

注:在发送这些指令时,一定要在串口调试软件里面选择“发送新行”,或者手动加一个回车。
另外,在实际的使用过程中发现,有些指令的设置结果在ESP8266模块掉电之后仍会保存(AT+CWMODE=3和AT+CIPMUX=0),所以只在51822上电时发这两条指令。而另外三条指令只在用到时才进行配置。

ESP8266的其它常用指令
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值