esp8266在局域网模式下的透传

esp8266使用透传模式,在局域网的范围内,将数据传至上位机。

at指令的发送顺序为

AT+CWMODE=1

AT+RST

AT+CWJAP=”public”,”123456789” //连入局域网
public 局域网的名字

AT+CIPMUX=0

AT+CIPMODE=1

AT+CIPSTART=”TCP”,”192.168.43.136”,8080 //连接上服务器

(此处使用的IP服务端查询到的随机分配给客户端的IP)

AT+CIPSEND

pc调试助手的使用
在这里插入图片描述
1,先关闭电脑的防火墙
2,连接至和esp8266的同一个wifi
3。选择tcp server
4,设置 ip 地址和端口号。

经过以上的步骤 ,
即可实现通过串口助手和调试助手的通讯。
在这里插入图片描述
如图所示

最后将esp8266连接至stm32 进行调试
uart.h的程序如下图
使用的是串口2

void USART_Config(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	USART_InitTypeDef USART_InitStructure;

	// ´ò¿ª´®¿ÚGPIOµÄʱÖÓ
	DEBUG_USART_GPIO_APBxClkCmd(DEBUG_USART_GPIO_CLK, ENABLE);
	
	// ´ò¿ª´®¿ÚÍâÉèµÄʱÖÓ
	DEBUG_USART_APBxClkCmd(DEBUG_USART_CLK, ENABLE);

	// ½«USART TxµÄGPIOÅäÖÃΪÍÆÍ츴ÓÃģʽ
	GPIO_InitStructure.GPIO_Pin = DEBUG_USART_TX_GPIO_PIN;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(DEBUG_USART_TX_GPIO_PORT, &GPIO_InitStructure);

  // ½«USART RxµÄGPIOÅäÖÃΪ¸¡¿ÕÊäÈëģʽ
	GPIO_InitStructure.GPIO_Pin = DEBUG_USART_RX_GPIO_PIN;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
	GPIO_Init(DEBUG_USART_RX_GPIO_PORT, &GPIO_InitStructure);
	
	// ÅäÖô®¿ÚµÄ¹¤×÷²ÎÊý
	// ÅäÖò¨ÌØÂÊ
	USART_InitStructure.USART_BaudRate = DEBUG_USART_BAUDRATE;
	// ÅäÖà ÕëÊý¾Ý×Ö³¤
	USART_InitStructure.USART_WordLength = USART_WordLength_8b;
	// ÅäÖÃֹͣλ
	USART_InitStructure.USART_StopBits = USART_StopBits_1;
	// ÅäÖÃУÑéλ
	USART_InitStructure.USART_Parity = USART_Parity_No ;
	// ÅäÖÃÓ²¼þÁ÷¿ØÖÆ
	USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
	// ÅäÖù¤×÷ģʽ£¬ÊÕ·¢Ò»Æð
	USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
	// Íê³É´®¿ÚµÄ³õʼ»¯ÅäÖÃ
	USART_Init(DEBUG_USARTx, &USART_InitStructure);
	
	// ´®¿ÚÖжÏÓÅÏȼ¶ÅäÖÃ
	NVIC_Configuration();
	
	// ʹÄÜ´®¿Ú½ÓÊÕÖжÏ
	USART_ITConfig(DEBUG_USARTx, USART_IT_RXNE, ENABLE);	
	
	// ʹÄÜ´®¿Ú
	USART_Cmd(DEBUG_USARTx, ENABLE);		

  // Çå³ý·¢ËÍÍê³É±êÖ¾
	//USART_ClearFlag(USART1, USART_FLAG_TC);     
}
在这里插入代码片

在主函数里面实现发送命令的函数

``c

void  send_string(USART_TypeDef* USARTx,char  *str)

{

while(*str!='\0')
{
	USART_SendData(USARTx,*str);
	
	 while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)==RESET)

{}
str++;
}

``参数一是 串口2
参数二是要发送的命令

主函数

 USART_Config();
	send_string(DEBUG_USARTx,"	AT+CWMODE=1\r\n");
	delay();delay();delay();delay();delay();delay();delay();delay();
	send_string(DEBUG_USARTx,"	AT+RST\r\n");
	delay();delay();delay();delay();delay();delay();delay();delay();
	/* ·¢ËÍÒ»¸ö×Ö·û´® */
	
	
	Usart_SendString( DEBUG_USARTx,"AT+CWJAP=\"gg\",\"cnm1234566\"\r\n");
	delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();delay();
	Usart_SendString( DEBUG_USARTx,"AT+CIPMUX=0\r\n");
	
	
	delay();delay();delay();delay();delay();delay();delay();delay();
	
		Usart_SendString( DEBUG_USARTx,"AT+CIPMODE=1\r\n");
	delay();delay();delay();delay();delay();delay();delay();delay();
	

	Usart_SendString( DEBUG_USARTx,"AT+CIPSTART=\"TCP\",\"192.168.43.174\",2222\r\n");
	
	delay();delay();delay();delay();delay();delay();delay();delay();
	Usart_SendString( DEBUG_USARTx,"AT+CIPSEND\r\n");
	delay();delay();delay();delay();delay();delay();delay();delay();
  while(1)
	{	
		Usart_SendString( DEBUG_USARTx,"hello\r\n");
		
		delay();	delay();delay();delay();delay();delay();delay();delay();delay();
		delay();	delay();delay();delay();delay();delay();delay();delay();delay();
	}	
}

按照at指令的一步步的初始化
在while里面持续发送一个hello
就可以在上位机收到字符了。
在这里插入图片描述
如图 ,调试助手收到了 hello

一个局域网的esp8266传输就完成了

需要代码的朋友
可以加我的qq 1925452496 加的时候备注一下

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
fre内网穿透只能穿透http协议,且页面大小限制在1496B以内(MTU,包含header头部) 包含函数如下: begin(char*,char*,char*,uint16,String,String);//设定参数信息,第一个参数是wifi名称,第二个参数是wifi密码,第三个参数是服务器地址,第四个参数是服务器端口,都五个参数是自定义域名密码,第六个参数是域名(多个域名以英文逗号分割) on(String,void);//页面以及回调函数,第一个参数是页面路径,第二个参数是回调函数 header(String,String);//设定header头部信息 sendfile();//发送默认的SPIFFS文件 sendfile(String);//发送指定的SPIFFS文件 send(int,string,string);//发送string,第一个参数是响应代码一般是200,第二个参数是页面类型,第三个参数是需要发送的文本 send(int,string,uint8_t*,size_t);//发送uint8_t数组文件,第一个参数是响应代码一般是200,第二个参数是页面类型,第三个参数是需要发送的uint8_t数组文件,第四个参数是uint8_t数组文件的大小 send(int,string,char*,size_t);//发送char数组文件,第一个参数是响应代码一般是200,第二个参数是页面类型,第三个参数是需要发送的char数组文件,第四个参数是char数组文件的大小 Authenticate(String, String);//判断Auth鉴权信息,第一个参数是用户名,第二个参数是密码 requestAuthentication();//向页面返回鉴权需求,使页面弹出Auth鉴权登录信息 getheader(String);//返回header指定头部信息参数值 arg(String);//返回GET请求参数值
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值