ESP8266(AT指令)的种种问题,总有一个问题适合你

被ESP8266支配的恐惧

1 关于strstr()函数的使用

在控制8266时,strstr()的函数的重要性不言而喻,strstr()函数遇到为0的字符都自动返回0,我们8266发送AT+RST指令时,很大概率,不是很大概率,是肯定会发送为0的字符,在这个时候能让你怀疑人生,质疑。而这个时候应该怎么做呢?在这个时候只需要在接收字符串的时候,把0排除在外就好了,就是在中断中判断,如下列的代码:

void USART2_IRQHandler(void)
{
	if(USART_GetITStatus(ESP8266_USARTx,USART_IT_RXNE) != RESET)
	{
		chart = USART_ReceiveData(ESP8266_USARTx);
		if(chart) <-----注意这里
		{
			if(FramLength < (RX_BUF_MAX_LEN - 1))
				Data_RX_BUF[FramLength++] = chart;
		}
	}
}

2 AT+CWJAP的问题

自己写的程序提示连接WIFI成功,而实际却没连接上,原因是8266返回的是:
"WIFI GOT IP\r\n\r\nOK"中间有两个换行符,所以监测的时候,要监测这个字符串。

3 关于多路连接和单路连接

以下命令都是在非透传模式下进行的
AT+CIPMODE=0   // 关闭透传
AT+CIPMUX=1// 0为单路连接 1 为多路连接
单路模式:
连接服务器:AT+CIPSTART=\"TCP\",\"%s\",%d"; // 单路模式下连接TCP服务器
发送命令:  AT+CIPSEND=num;  // num 表示发送的数据个数
多路模式:
连接服务器:AT+CIPSTART=0,\"TCP\",\"%s\",%d"; // 多路模式下连接TCP服务器  0的位置可以替换
发送命令:  AT+CIPSEND=0,num;  // num 表示发送的数据个数  0 的位置必须和上面保持一样
最后直接发送就好了

4 透传模式

在透传模式下,只能是单路连接模式

AT+CIPMUX=0// 开启单路连接
下来就是那一套流程
注意当发送  AT+CIPMODE=1   // 开启透传。
当发送完这一条命令之后他不会立刻进入透传,需要在发一个
AT+CIPSEND
这样才完全进入透传
注意:这个命令的时候,8266默认串口接收到的数据都发给服务器,不在认为是命令。
如果想退出透传模式,直接发送 +++,就退出透传模式,+++没有回车

透传模式在用8266在进行HTTP请求时,用的比较多

5 关于硬件问题

不知道你们是不是这样,当8266买回来之后,是不是很质疑这个模块的好坏,当发现自己搞不通,问客服,问这问那的,刷固件啥的,估计固件刷的不止一遍,其实很小的概率你的模块是坏的,我感觉最主要的是电源3.3V,你用的是不是USB转TTL模块给8266通信的,相信我,别用它,它的电源支持不了,找一个稳定的3.3V电源,比如单片机开发板上面的3.3V电源,因为要用到两个3.3V的电源,所以稳定最重要。具体接线如下图:
在这里插入图片描述

6 发送的具体流程

下面以发送到网络调试助手为例子,演示具体的发送流程
在这里插入图片描述
这张图是网络调试助手,设置本机IP,设置端口号码,等待8266去连接它,必须保证你连接的WIFI和这个主机处在同一个网络中,就是同一个局域网中。

1 .AT+RST                    先复位一下
2  AT+CWMODE=1               设置station模式
3  AT+CWAUTOCONN=0           关闭自动连接
4  AT+CWJAP=\"WIFIF账号\",\"WIFI密码\"  连接WIFI WIFI的名字要是英文的
5  AT+CIPMODE=0              关闭透传
6  AT+CIPMUX=0               开启单路连接
7  AT+CIPSTART=\"TCP\",\"192.168.1.104\",8080"   连接TCP服务器
8  AT+CIPSEND=num      num表示发送的数据
当发送完第8条之后,就可以发送数据到网络调试助手了
注意
每次发数据前都要发送第8条指令,简单来说就是:
void send(char *data,int num)
{
	AT+CIPSEND=num;      num表示发送的数据个数
	ESP8266_SEND(data);
}
这是在非透传模式单路连接下发送的数据,透传模式可以自己试下
  • 2
    点赞
  • 9
    评论
  • 10
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值