esp8266_wifi模块使用日记(仅自己看)

文章详细阐述了ESP8266模块在TCP和UDP模式下的配置步骤,包括AP和STA模式下的服务器和客户端设置。重点讨论了IP地址、端口号的管理和AT指令的使用,如CIPSTART、CIPMUX、CIPSEND等,以及如何处理多连接和断开重连的情况。还提到了透传模式在数据传输中的作用和异常情况的处理策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STA配置服务器流程:
加/r/n
AT+CWMODE=1
AT+RST
AT+CWJAP=“ATK-ESP8266”,“12345678”
AT+CIPMUX=1
AT+CIPSERVER=1,8086
AT+CIPSEND=0,2
发送2个字节

STA配置客户端流程:
加/r/n
AT+CWMODE=1
AT+RST
AT+CWJAP=“ATK-ESP8266”,“12345678”
AT+CIPMUX=0
AT+CIPSTART=“TCP”,“192.168.5.1”,8086
AT+CIPMODE=1
AT+CIPSEND
在这里插入图片描述

CIPSTATUS

在这里插入图片描述

在这里插入图片描述

UDP配置问题.

在这里插入图片描述
在这里插入图片描述

两者都差不多,但是AP+CIPSTART的指令的意思是,别人的ip和别人端口号,最后一个是自己的端口号,写了就可以固定,不写自动分配。
AT+CIPSTART=“UDP”,“192.168.5.2”,8080,8088
在这里插入图片描述

上位机打开了本地连接,端口号也知道了。模块才可以发送。因为我连接的就是
192.168.5.2",8080
在这里插入图片描述

在这里插入图片描述

相当于服务器的模块,配置的是AP的UDP模式,然后让另一个模块以STA的UDP模式来连接AP,然后用电脑开了两个连接,类似客户端那样的。
可以看到电脑的上位机是需要设置远端的IP和端口号的,
不管是谁,都会使用AT+CIPSTART=, ,
[,(),()]
例如:AT+CIPSTART=“UDP”,“192.168.5.2”,8080,8088

IP是别人的IP,第一额端口号是别人的端口号,第二个端口号才是自己的端口号,不配置自己的话,会自动分配。

现在的问题就是怎么知道对方的IP地址呢。
方法1:AT+CIPSTATUS

方法2:
AT+CIPDINFO=1,接收数据时
接收网络数据时是否提示对端 IP 和端口

方法3:
AT+CWLIF
AP下可以使用,查看接入设备的IP和MAC

有坑,这只能显示出自动分配的IP

方法4:
电脑不静态,模块使用静态IP,
电脑模块上电都需要电脑电机接入,这样模块才能接入到电脑进行点对点通信。

注意:
不是点对点的话,有时候会丢包,即用192.168.4.255

在这里插入图片描述
在这里插入图片描述

UDP模式下的AT+CIPSTATUS实验:

是可以知道自己的端口号的,连接别人的IP和端口,但不知道自己的IP。
CIFSR可以IP和MAC
在这里插入图片描述

UDP模式下的AT+CIPSTATUS,都是返回连接的别人的IP地址,别人的端口号,自己的端口号
STATUS:2是获得IP。
STATUS:5是AP下返回的。

这是192.168.5.3的8080向192.168.5.3的8082发送数据

在这里插入图片描述

这是192.168.5.3的8080向192.168.5.2的8082发送数据

在这里插入图片描述

可以看到IP地址不一样的情况下,端口号8082是可以一样的。。。

UDP的多链接问题。
这图是AP的UDP配置,STA也是一样的。
在这里插入图片描述

只需要AT+CIPMUX=1
一对多的时候,CIPSTART,第二次的时候不能指定本地端口号。
在这里插入图片描述

实验:一个模块作AP的UDP随便连接一个建立端口号先,然后其他就可以连接,因为AP的IP是192.168.5.1,端口号是8088.。

如果随便连接了192.168.5.1本身,那么就不能和别人通信,因为5.1是自己本身。
然后AP如果要和他们通信的话,就要连接他们,这时候就不能指定端口号了,需要自动分配,不然会出错。
在这里插入图片描述

还有问题:
在这里插入图片描述

如果模块接收到没有连接上的数据,而你又打开了多链接,那就默认ID是0,不打开就没有ID。

所以在实际中,从第二个连接开始,服务器是根据IP地址和随机的端口来发送数据的,
而客户端可以只发送192.168.5.1和端口号为8080来发送给服务器。
然后服务器根据接收过来的IP和端口号进行数据处理,例如判断是哪个小车。

需要搞清楚一开始连接全部小车,还是第一次接收到数据的时候再连接小车。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

TCP实验:

  1. 长时间不发数据,就会断开,这时候客户端只要使用指令重新连接
    AT+CIPSTART=“TCP”,“192.168.4.1”,8086
    然后服务器会返回connect OK,然后客户端再返回connect

但是UDP不会断开,因为没有服务器和客户端连接的说法,但是也是需要AT+CIPSTART的。

  1. 关于透传,客户端开启透传的意思是,不用每次都发指令后,才发数据给服务器,。并不是服务器那里没有+IPD,0,14这些前缀。但是客户端退出透传模式的话,服务器发过来的数据就会有+IPD,25:的前缀。。

  2. 服务器发送指令
    sprintf((char*)p,“ATK-8266%s测试%02d\r\n”,ATK_ESP8266_WORKMODE_TBL[netpro],t/10);//测试数据
    atk_8266_send_cmd(“AT+CIPSEND=0,25”,“OK”,200); //发送指定长度的数据
    delay_ms(200);
    atk_8266_send_data(p,“OK”,100); //发送指定长度的数据

响应
发送指定长度的数据。收到此命令后先换行返
回”>”,然后开始接收串口数据,当数据长度满
length 时发送数据。如果未建立连接或连接被
断开,返回
ERROR
如果数据发送成功,返回
客户端返回SEND OK

  1. STATUS:5和STATUS:4
    当AP发送时返回5,成功时返回
    AT+CIPSTATUS
    STATUS:5
    +CIPSTATUS:0,“TCP”,“192.168.4.2”,1360,8086,1

当AP服务器发送时, 2:获得IP
STATUS:2
+CIPSTATUS:0,“TCP”,“192.168.4.2”,37830,8086,1

STA客户端 3:建立连接
STATUS:3
+CIPSTATUS:0,“TCP”,“192.168.4.1”,8086,37830,0

当STA客户端发送时,如果已经连接上wifi,但是没有connect得话,返回2.,connect时返回3,成功时:
STATUS:3
+CIPSTATUS:0,“TCP”,“192.168.5.1”,8086,41519,0 //这是别人AP服务器的IP地址

当AP加STA模式,就会返回全部状态。例如AP服务器+STA服务器下(192.168.4.1)(192.168.5.1)
+CIPSTATUS:0,“TCP”,“192.168.4.2”,23913,8086,1 //别人连接自己AP后的别人状态
+CIPSTATUS:1,“TCP”,“192.168.5.3”,7092,8086,1 //别人连接和自己一样的AP后的别人状态,因为我是服务器。

2:获得 ip
3:建立连接
4:失去连接
连接的 id 号 0-4
字符串参数,类型 TCP 或 UDP
<remote_ip>字符串参数,
连接远端的 IP 地址
响应
返回当前模块的拦截状态和连接参数
STATUS:
+CIPSTATUS:,,<remote_ip>,, <local_port>,

OK

  1. ESP8266作为STA模式时的注意事项
    Station模式有几个特点,以方便管理的Wi-Fi连接。
    • 在连接丢失的情况下,一旦WiFi再次可用,ESP8266将自动重新连接到最近使用的接入点(Access Point,理解为热点),往往这一点容易出问题(有时路由器重启了,会发现ESP8266一直连接不上路由)。
    • 模块重启也会发生同样的情况。
    • 因为ESP8266将最后使用的接入点认证信息(ssid账号,psw密码)保存到Flash(非易失性)存储器中。
    • 如果在Arduino IDE修改代码,但代码不更改Wi-Fi工作模式或接入点认证信息(ssid账号,psw密码),则ESP8266使用保存在Flash上数据来重新连接。
    Station模式下的WiFi模块,有几个特点,以便用来管理WiFi连接:
    当近使用的可接入点连接断开,但后面重新可用,那么ESP8266会自动去重新连接它(名词解析,最近使用的可接入点,就是ESP8266 最后连接的WiFi热点);
    第一点说到的情况,对于ESP8266模块重新启动也一样适用;
    这两点实现的原理就是:ESP8266会把最近使用的可接入点的校验信息(ssid账号和psw密码)会存到flash 存储中。使用保存在flash中的校验信息,ESP8266就可以重新连接到最近使用的可接入点,尽管你再次改变代码烧写进去,只要你不改变WiFi原来的工作模式和校验信息(说简单点就是,如果你烧写代码不擦除所有flash空间并且设置了自动连接,那么在仍然是station模式下就会自动连接wifi热点,不过在这里,博主建议大家在begin之前先调用 WiFi.disconnect(),可以避免一些奇怪的连接问题)。

上述对应的就是AT+CWJAP。设置连接到的WIFI网络名称/加密方式/密码

重连对应代码就是
如果客户端掉电了。
只需要AT+CIPSTART就好了,经过实验好像直接AT+CIPSTART=“TCP”,“192.168.4.1”,8086,
就不需要AT+CIPMUX=0,设置单连接。
否则会出现link is builded
ERROR

但是先单连接再AT+CIPSTART,就不会报错,也是可以。

但是都需要设置透传模式后"AT+CIPMODE=1才能进入开始透传。AT+CIPSEND

当服务器断开时:
情况1:服务器断电。这时候如果重新连接,会返回no ip
情况2:程序重启,服务器不断电,但是重启会复位模块。这时候重新自动连接,然后还继续连接的话。会返回error,cloed。

然后当服务器设置到ap模式之后,再连接,就会返回OK和connect、这时候再连接就会返回ALREADY CONNECTED

ERROR.

  1. 上一次正常运行,断电之后wifi模块重新配置才会成功。因为芯片和wifi都断电了
    可是如果只是下载程序的话,程序运行重新运行,重新配置wiif模块是不会成功,但能正常运行,因为WiFi模块并没有断电。这时候还是原来的配置,
    在这里插入图片描述

不会返回ok.

查找本机IP
AT+CIFSR
AP模式下查看已接入设备的ip
AT+CWLIF

AT+CWLAP
查询可用的APwiif,
注意,只有当STA或者AP+STA模式去才能使用,AP模式下不可以。

AT+CWJAP=“ATK-ESP8266_ap_sta”,“12345678”
成功返回WIFI CONNECTED
WIFI GOT IP

如果已经连接然后再加入,就会多一个
WIFI DISCONNECT
WIFI CONNECTED
WIFI GOT IP

AT+CIPCLOSE和AT+CIPCLOSE=id和AT+CIPCLOSE=5

客户端的时候用AT+CIPCLOSE
服务器的时候用AT+CIPCLOSE=id和AT+CIPCLOSE=5

AP 和STA的客户端和服务器的区别;

AP的服务器模式就是开热点。

但是AP的客户端模式,则是开启了AP模式的模块作为热点,然后自己(模块)设置为客户端,
此时自己(模块)的ip就是热点的ip,等待连接同一个IP域的服务器。

接着别人(电脑或者手机或者另一个模块)需要连接上自己的热点,然后别人就会自动分配一个IP,然后配置成服务器模式。
然后自己(模块)要连接到服务器(电脑或者手机或者另一个模块)上。

STA的客户端就是需要连接到别人的WiFi热点。

STA的服务器模式 ,还是需要连接别人的wifi热点(例如手机热点),即便他是服务器模式。

然后别人(例如电脑,或者另一个模块)也要连接同样的WiFi(例如同一个手机热点),别人则要配置成客户端。

然后别人(例如电脑,或者模块)连接STA的服务器,IP地址是连接到同一个wiif后自动分配的。

这里就是要一个热点作为中转站,相当于一个热点有两个设备加入。
在这里插入图片描述

关于:AT+CIPSEND=1,=0的问题
对于AP服务器来说,谁先连接,谁就是0
对于AP服务器+STA客户端来说,谁先连接或者谁先被连接,谁就是0,例如,我客户端先连接别人,那么STA客户端就是0

自我总结:

啃瓜子的猫:
Cipstatus

啃瓜子的猫:
查看

啃瓜子的猫:
如果有ip 但是发送不成功

啃瓜子的猫:
就推出

啃瓜子的猫:
退出

啃瓜子的猫:
这是客户端直接断wifi 的原因

啃瓜子的猫:
服务器如果发现有ip 但是发送不成功,

啃瓜子的猫:
就关掉发不出去的id

啃瓜子的猫:
然后让客服端重新链接

啃瓜子的猫:
客服端可以链接很多个服务器

啃瓜子的猫:
他自己有对应每个服务器的id

啃瓜子的猫:
服务器也有很多客服端链接

啃瓜子的猫:
他自己也有对应每个客服端的id

啃瓜子的猫:
他们的id 都不一样一一对应

啃瓜子的猫:
有的客户端链接了一个服务器,但是一些原因,例如断电,

啃瓜子的猫:
服务器并不知道,因为不是正常的关闭

啃瓜子的猫:
这时候客服端重新以同一个id 链接上服务器的时候,

啃瓜子的猫:
如果这个服务器没有其他人链接的情况下,服务器分配给这个客户端的id 就有可能不是0,而是1,0这个id 已经被之前不正常关闭的客户端占用了

啃瓜子的猫:
然后过一段时间,服务器会自动关闭id 0,因为长时间不通信

啃瓜子的猫:
客户端不用一直发数据维持通信

啃瓜子的猫:
由服务器来发送

啃瓜子的猫:
如果

啃瓜子的猫:
如果

啃瓜子的猫:
Ap s sta c 这个先不链接Ap s sta s

啃瓜子的猫:
而是让电脑先连上wifi 而且connect 上了

啃瓜子的猫:
那么Ap s sta c 的c去链接Ap s sta s 的时候

啃瓜子的猫:
是以0的id 链接,那么会有可能会出问题,因为电脑先连上了,已经是服务器分配了id 为0给电脑

啃瓜子的猫:
Ap加STA模式的id 序号是叠加的,不是分开的

啃瓜子的猫:
但是这个情况是可以避免的,而且很少发生,因为重新上电的时候,就算电脑连上了wifi ,但是重新上电模块会把id 清零的

啃瓜子的猫:
而且Ap s sta c 打开了wifi 也没用,因为他是要找到Ap s sta s 的wifi 并连接上后,才打开server 的

啃瓜子的猫:
所以电脑是不能先链接的

啃瓜子的猫:
Ap s sta s也是这样

啃瓜子的猫:
如果是复位

啃瓜子的猫:
要做实验ap s sta s复位

啃瓜子的猫:
看看rst会不会导致客户端连不上

啃瓜子的猫:
预测,就算连不上,ap s sta s发现发不过去,就会关掉id0

啃瓜子的猫:
客户端就会重连

啃瓜子的猫:
预测而已

啃瓜子的猫:
要做实验

啃瓜子的猫:
现在就不知道服务器重启了客户端知不知道,会不会关掉对应服务器的id

啃瓜子的猫:
在这里插入图片描述

啃瓜子的猫:
实验显示,ap s sta s复位的时候

啃瓜子的猫:
ap s sta c连接上的id会close掉。

啃瓜子的猫:
//如果那边重启了。这边会0,CLOSED,不会不知道服务器重启,的
//也不会客户端的id0被占用,因为已经closed了

啃瓜子的猫:
要做实验ap s sta c复位

啃瓜子的猫:
在这里插入图片描述

啃瓜子的猫:
可以看到ap s sta c复位之后,ap s sta s这边是不知道的

啃瓜子的猫:
这时候ap s sta c重新连接的话,服务器会分配一个id=1给他

啃瓜子的猫:
但是ap s sta c是id=0连接的,

啃瓜子的猫:
但是并不会影响,在服务器的代码里

啃瓜子的猫:
是按ipd来发的。

啃瓜子的猫:
用AT+CIPSTATUS

啃瓜子的猫:
在这里插入图片描述

啃瓜子的猫:
在这里插入图片描述

啃瓜子的猫:
服务器发送失败之后会把失败的id去掉

啃瓜子的猫:
//失败会自动断掉,不需要关闭,但是也会导致CIPSTATUS返回不到信息,返回busy s
//然后过一会才返回CIPSTATUS:1,CONNECT FAIL
//SEND FAIL
//这是固件决定的

啃瓜子的猫:
但是,有一点,ap s sta c这个模块是电脑和另一个模块的中转站,意思是两个都需要ap s sta c的APWiFi,ap s sta c重启了,那么两边都是断掉

啃瓜子的猫:
在这里插入图片描述

啃瓜子的猫:
即使是这里都是亮的都没用

啃瓜子的猫:
都需要重新断开再重连

啃瓜子的猫:
ap s sta c重启了,那么ap s sta S那个STA SERVE也会断开所以连接

啃瓜子的猫:
因为wifi断了

啃瓜子的猫:
在这里插入图片描述

啃瓜子的猫:
在这里插入图片描述

啃瓜子的猫:
可以看到一开始STA_S是有电脑的连接的

啃瓜子的猫:
STA_C重启后,就没有了,但是会保留STA_C的客户端连接,然后STA_C重新连接的时候,就会又多了一个STA_C出来

<think>我们正在讨论STM32F103微控制器如何使用WiFi模块(特别是ESP8266)连接网络。根据引用[1],我们知道ESP8266通过UART与STM32通信,并有三种工作模式:AP、STA和混合模式。用户需要的是配置和连接教程。我们将按照以下步骤进行:1.硬件连接:将ESP8266模块STM32F103通过UART连接(通常使用USART2或USART3,避免调试使用的USART1)。2.配置ESP8266:通过发送AT指令设置ESP8266为STA模式,并连接目标WiFi。3.STM32程序:编写STM32程序,通过串口发送AT指令并解析ESP8266的响应。4.网络通信:连接成功后,通过TCP/IP协议与服务器通信。详细步骤:步骤1:硬件连接ESP8266的VCC接3.3V,GND接GND,TXD接STM32的RXD(例如PA3),RXD接STM32的TXD(例如PA2)。注意:有些ESP8266模块需要CH_PD(使能引脚)接高电平(3.3V)。步骤2:配置ESP8266使用AT指令)首先,我们通过串口调试助手测试AT指令,确保模块正常工作。常用的AT指令:-AT:测试通信-AT+RST:重启模块-AT+CWMODE=1:设置为STA模式(1表示STA,2表示AP,3表示混合模式)-AT+CWLAP:列出可用AP-AT+CWJAP="SSID","password":连接指定WiFi-AT+CIPSTART="TCP","server_ip",port:建立TCP连接-AT+CIPSEND:发送数据步骤3:STM32程序在STM32上,我们需要初始化USART,并实现与ESP8266的通信。以下是一个简单的流程:a.初始化USART和GPIO(配置为复用推挽输出和浮空输入,波特率通常为115200)b.发送AT指令并等待响应(需要处理响应,判断是否成功)c.实现一个简单的状态机来处理连接过程。示例代码(使用HAL库):```c//初始化USART2voidMX_USART2_UART_Init(void){huart2.Instance=USART2;huart2.Init.BaudRate=115200;huart2.Init.WordLength=UART_WORDLENGTH_8B;huart2.Init.StopBits=UART_STOPBITS_1;huart2.Init.Parity=UART_PARITY_NONE;huart2.Init.Mode=UART_MODE_TX_RX;huart2.Init.HwFlowCtl=UART_HWCONTROL_NONE;huart2.Init.OverSampling=UART_OVERSAMPLING_16;HAL_UART_Init(&huart2);}//发送AT指令并等待响应uint8_tesp8266_send_command(char*cmd,char*resp,uint32_ttimeout){HAL_UART_Transmit(&huart2,(uint8_t*)cmd,strlen(cmd),1000);//等待响应,并检查是否包含resp//这里需要实现接收和字符串匹配,可以使用循环接收,超时判断}//在主函数中配置ESP8266intmain(void){//初始化...esp8266_send_command("AT\r\n","OK",2000);//测试ATesp8266_send_command("AT+CWMODE=1\r\n","OK",2000);//设置模式esp8266_send_command("AT+CWJAP=\"SSID\",\"password\"\r\n","OK",10000);//连接WiFi,注意长超时//...后续操作}```步骤4:TCP连接与数据收发连接WiFi成功后,我们可以建立TCP连接并发送数据。```c//建立TCP连接chartcp_cmd[50];sprintf(tcp_cmd,"AT+CIPSTART=\"TCP\",\"%s\",%d\r\n",server_ip,port);esp8266_send_command(tcp_cmd,"OK",5000);//发送数据charsend_cmd[20];sprintf(send_cmd,"AT+CIPSEND=%d\r\n",data_len);esp8266_send_command(send_cmd,">",1000);//等待提示符'>'HAL_UART_Transmit(&huart2,(uint8_t*)data,data_len,1000);//发送实际数据```注意事项:-ESP8266的响应可能包含换行符,在解析时要注意。-每次发送AT指令后,需要等待模块响应,避免指令重叠。-错误处理:如果某一步失败,应重试或进入错误处理流程。引用[1]中提到的文章链接提供了更详细的内容,但请注意,具体实现可能因模块版本和固件版本而异。生成相关问题:1.如何调试ESP8266模块STM32的通信?2.在STM32上如何解析ESP8266返回的JSON数据?3.如何实现STM32通过ESP8266上传数据到云平台?</think>### STM32F103 WiFi模块使用教程(ESP8266配置与连接) #### 硬件配置 1. **模块选型** 推荐使用**ESP8266系列**(如ESP-01),通过UART协议与STM32F103通信[^1]。工作模式选择: - **STA模式**(无线终端模式):连接外部WiFi网络 - **AP模式**:自身作为热点(本文使用STA模式) - **混合模式**:兼具两种功能 2. **硬件连接** ```mermaid graph LR STM32F103 -->|UART_TX| ESP8266_RX STM32F103 -->|UART_RX| ESP8266_TX STM32F103 -->|3.3V| ESP8266_VCC STM32F103 -->|GND| ESP8266_GND ESP8266 -->|CH_PD| 3.3V[3.3V使能] ``` **引脚说明**: - `USART2`(PA2-TX, PA3-RX)或`USART3`(PB10-TX, PB11-RX) - ESP8266供电必须为**3.3V**(最大电流≥500mA) - 使能引脚`CH_PD`需接高电平 #### 软件配置 1. **AT指令初始化** 通过串口发送基础AT指令配置模块: ```c // 设置STA模式 HAL_UART_Transmit(&huart2, "AT+CWMODE=1\r\n", 13, 100); // 连接WiFi(替换SSID和密码) HAL_UART_Transmit(&huart2, "AT+CWJAP=\"YourSSID\",\"Password\"\r\n", 30, 5000); // 启用多连接 HAL_UART_Transmit(&huart2, "AT+CIPMUX=1\r\n", 12, 100); ``` 2. **TCP连接服务器** ```c char tcp_cmd[50]; sprintf(tcp_cmd, "AT+CIPSTART=0,\"TCP\",\"%s\",%d\r\n", "192.168.1.100", 8080); HAL_UART_Transmit(&huart2, (uint8_t*)tcp_cmd, strlen(tcp_cmd), 1000); ``` 3. **数据收发示例** ```c // 发送数据 HAL_UART_Transmit(&huart2, "AT+CIPSEND=0,12\r\n", 16, 100); // 发送12字节 HAL_UART_Transmit(&huart2, "Hello Server!", 12, 100); // 接收数据(中断回调) void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if(huart->Instance == USART2) { // 解析ESP8266返回的数据 if(strstr((char*)rx_buffer, "+IPD")) { // 处理网络数据 } } } ``` #### 关键注意事项 1. **电源管理** - 使用独立3.3V稳压器(如AMS1117) - 添加100μF电容滤波防复位 2. **通信优化** - 波特率统一为**115200** - 每条AT指令后添加`\r\n` - 响应超时设置≥3秒(尤其WiFi连接) 3. **错误处理** 需检测关键响应: ```c if(wait_response("OK", 3000) != HAL_OK) { // 重连或报错处理 } ``` #### 典型应用场景 1. **物联网数据上传** ```c // 构建HTTP POST请求 char http_cmd[150]; sprintf(http_cmd, "POST /api/data HTTP/1.1\r\nHost: api.example.com\r\nContent-Length:%d\r\n\r\n{\"temp\":25}\r\n", data_len); ``` 2. **MQTT协议接入** 使用`AT+CIPSTART`连接MQTT broker(如Mosquitto) [^1]: 引用自ESP8266模块技术文档及STM32通信实现参考(http://t.csdnimg.cn/NqLh8) --- ### 相关问题 1. 如何解决ESP8266连接WiFi时频繁断开的问题? 2. STM32F103与ESP8266通信时如何处理大数据量传输? 3. 如何通过AT指令实现ESP8266的固件升级(OTA)? 4. 在低功耗场景下如何优化STM32+ESP8266的能耗? 5. 如何实现ESP8266同时作为AP和STA的混合模式通信?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值