ESP32开发

目录

1、简介

1.1 种类

1.2 特点

1.3 管脚功能

1.4 接线方式

1.5 工作模式

2、基础AT指令介绍

2.1 AT指令类型

2.2 基础指令及其描述

2.3 使用AT指令需要注意的事

3、AT指令分类和提示信息

3.1 选择是否保存到Flash的区别

3.2 提示信息

3.3 其他会保存到Flash的AT指令

4、基础WI-FI功能指令

5、TCP&IP功能AT指令概述

6、AT指令应用示例_单连接 TCP Client

6.1 配置 WiFi 模式

6.2 连接路由器 

6.3 查询 ESP8266 设备的 IP 地址

6.4 建立TCP服务器

6.5 ESP8266设备作为TCP client连接到上述服务器

6.6 ESP8266 设备向服务器发送数据

6.7 ESP8266设备接收数据提示信息

7、AT指令应用示例_UDP传输

7.1 固定远端的 UDP 通信

7.1.1 配置 WiFi 模式

7.1.2 连接路由器

7.1.3 查询 ESP8266 设备的 IP 地址

7.1.4 建立UDP服务器

7.1.5 使能多连接

7.1.6 创建UDP传输

7.1.7 发送数据

7.1.8 断开UDP传输

7.2 远端可变的 UDP 通信

7.2.1 配置 WiFi 模式

7.2.2 连接路由器

7.2.3 查询 ESP8266 设备的 IP 地址

 7.2.4 建立UDP服务器

7.2.5 使能单连接

7.2.5 创建UDP传输

7.2.6 发送数据

7.2.7 发送数据到其他指定远端

7.2.8 断开UDP传输

8、AT指令应用示例_透传

8.1 TCP Client单连接透传

8.1.1 配置WIFI模式

8.1.2 连接路由器

8.1.3 查询 ESP8266 设备的 IP 地址

8.1.4 建立TCP服务器

8.1.5 ESP8266 设备作为 TCP client 连接到上述服务器

8.1.6 使能透传模式

8.1.7 ESP8266设备向服务器发送数据

8.1.8 退出发送数据

8.1.9 退出透传模式

8.1.10 断开TCP连接

8.2 UDP透传

8.2.1 配置 WiFi 模式

8.2.2 连接路由器

8.2.3 查询 ESP8266 设备的 IP 地址

8.2.4 建立UDP服务器

8.2.5 ESP8266与PC对应端⼝建⽴固定对端的UDP传输

 8.2.6 使能透传模式

8.1.7 ESP8266设备向服务器发送数据

8.1.8 退出发送数据

8.1.9 退出透传模式

8.1.10 断开UDP连接

9、多连接TCP Server

9.1 配置WiFi模式

9.2 使能多连接

9.3 建⽴ TCP server

9.4 连接路由器

9.5 在PC端使⽤⽹络调试⼯具,建⽴⼀个TCP client,连接ESP8266的TCP server(上面设置9090)

9.6 发送数据

9.7 断开TCP连接


1、简介

1.1 种类

WIFI模块在PC上做为客户端、服务器,在STM32上做服务器的通讯。在物联网应用开发有重要作用,种类居多,如下图

红色方框的esp8266-01s型号的无限wifi模块就是本章学习的主要对象。

1.2 特点

  • 小巧的尺寸:ESP-01S模块具有紧凑的设计,适用于空间有限的应用。
  • WiFi功能:它支持802.11b/g/n标准,允许设备连接到无线网络。
  • 高度集成:ESP-01S集成了WiFi功能和处理器,减少了外部组件的需求。
  • AT指令支持:通过串口通信,可以使用AT指令进行配置和控制。
  • 低功耗:ESP-01S模块具有低功耗特性,适用于长时间运行的应用。
  • 容易使用:ESP-01S模块易于配置和应用,有许多开发资源和示例代码可用。

1.3 管脚功能

Pin脚编号Pin脚名称备注
1GND接地
2IO2GPIO2/UART1 TXD
3IO0GPI00:下载模式:外部拉低:运行模式:悬空或者外部拉高
4RXDUARTO RXD/GPIO3
5TXDUARTO TXD/GPI01
6EN芯片使能端,高电平有效
7RST复位
8VCC3.3V供电(VDD);外部供电电源输出电流建议在500mA 以上

1.4 接线方式

1.5 工作模式

ESP8266-01s模块共支持3种工作模式:STA、AP、STA+AP

1、STA模式

         在此模式下,模块可连接其他设备提供的无线网络,例如通过 WIFI 连接至路由器,从而可以访问互联网,进而实现手机或电脑通过互联网实现对设备的远程控制。   

        简单来说,此模式下,该模块相当于一个用户,需要链接外部的WIFI(或自己的热点),通过链接的WIFI进行与其他设备的通信;

2、AP 

        AP 模式为默认的模式,在此模式下,模块将作为热点供其他设备连接, 从而让手机或电脑直接与模块进行通讯,实现局域网的无线控制。

        简单来说,此模式下,该模块相当于提供一个热点,创建一个小范围的局域网,凡是连接上的设备就能与其进行通信;

3、STA+AP

        该模式为 STA 模式与 AP 模式共存的一种模式,模块既能连接至其他 设备提供的无线网络,又能作为热点,供其他设备连接,以实现广域网与局域网的无缝切换, 方便操作使用。

2、基础AT指令介绍

2.1 AT指令类型

注意:
不是每条 AT 指令都具备上述 4 种类型的命令。
[ ] 括号内为缺省值,不必填写或者可能不显示。
使⽤双引号表示字符串数据 ”string” ,例如: AT+CWSAP="ESP756290","21030826",1,4
默认波特率为 115200
AT 指令必须⼤写,并且以回⻋换⾏符结尾( CR LF )。

2.2 基础指令及其描述

使用示例:

AT指令启动调试

AT+RST重启调试

AT+RESTORE恢复出厂设置调试

2.3 使用AT指令需要注意的事

输入AT指令时,所有字母需要为大写形式,否则会报错(返回error),但有个例外:加号前面的可以是小写,但加号后面的必须为大写,这可能是esp8266模块中程序自己做了处理,即AT无论是大小写都能识别出来。

在等待发送AT指令时,需要回车加换行,即\r\n,否则在串口部分他会以不换行的格式不断发送你输入的AT指令,但这在esp8266模块看来,它未识别到\r\n,所以不会对输入的AT指令进行处理,只有当识别到\r\n时,才会进行处理,所以需要勾选上串口助手的发送新行选项。

3、AT指令分类和提示信息

3.1 选择是否保存到Flash的区别

AT指令主要分类在简介中有写到,但有些指令有无Flash区别很大,在这里做一下解析。

如上图所示,设置当前wifi模式可以选择是否存到Flash,则有不同的AT指令,针对上图做出调试:

1.先进行测试

2.再进行查询

3.最后进行修改并查询

 

可见此时wifi模式成功修改成Station模式,但此时调用复位AT指令,再次进行查询,其模式还会是修改过后的模式么,如下:

可见修改后的模式并没有存储到Flash中,复位后会发生改变,若想要保存到Flash中,调用上面第二个图片中的AT指令即可,这里就不作演示。

3.2 提示信息

3.3 其他会保存到Flash的AT指令

4、基础WI-FI功能指令

5、TCP&IP功能AT指令概述

红框的是经常需要用到的,详细概述如下:

6、AT指令应用示例_单连接 TCP Client

6.1 配置 WiFi 模式

AT+CWMODE=3 // softAP+station mode
注:此AT指令通过试验会保存到Flash
响应 :
OK

6.2 连接路由器 

AT+CWJAP="SSID","password" // SSID and password of router SSID是路由器名称 password是路由器密码
响应 :
OK

6.3 查询 ESP8266 设备的 IP 地址

AT+CIFSR
响应 :
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"ee:fa:bc:96:20:8c"
+CIFSR:STAIP,"192.168.1.120"
+CIFSR:STAMAC,"ec:fa:bc:96:20:8c"
OK

 可见成功查询到esp8266模块连接wifi的IP

6.4 建立TCP服务器

PC ESP8266 设备连接同⼀路由器,在 PC 端使⽤⽹络调试⼯具,建⽴⼀个TCP服务器。
打开网络调试助手,修改端口号为TCPServer,当本地IP出现时,修改端口号为8080,点击侦听即可。

 

此时显示侦听中,可见等待设备连接到该TCP服务器。同时创建的服务器IP为192.168.1.103,端口为8080.

6.5 ESP8266设备作为TCP client连接到上述服务器

AT+CIPSTART="TCP","192.168.1.103 ",8080 //protocol, server IP and port
响应 :
OK

实现本地发送数据至远端。

6.6 ESP8266 设备向服务器发送数据

AT+CIPSEND=4 // set date length which will be sent, such as 4 bytes
>test // enter the data, no CR
响应 :
Recv 4 bytes
SEND OK

可见实现了远端像本地发送数据。

注意:
发送数据时,如果输⼊的字节数超过了设置⻓度( n ):
- 系统将提示 busy ,并发送数据的前 n 个字节,发送完成后响应 SEND OK
- 超出⻓度的部分数据被认为是⽆效数据,不被接受。

 可见超过AT指令设置的字节时,本地只能接收到在设置字节范围内的数据,其余数据发送失败。

6.7 ESP8266设备接收数据提示信息

提示信息如下:

+IPD,n:xxxxxxxxxx // received n bytes, data=xxxxxxxxxxx

上图IPD比输入数据长度多2是因为网络调试助手中勾选了换行,所以每次发送时串口助手会换行,同时\r\n算两个字符长度,下图不添加换行后,IPD与输入字符长度一样。

7、AT指令应用示例_UDP传输

UDP传输分为固定远端和远端可变,同时他们的前三步与上部分单连接TCP Client相同,所以这里将步骤列出来,不做详细操作演示。

7.1 固定远端的 UDP 通信

7.1.1 配置 WiFi 模式
AT+CWMODE=3 // softAP+station mode
注:此AT指令通过试验会保存到Flash
响应 :
OK
7.1.2 连接路由器
AT+CWJAP="SSID","password" // SSID and password of router SSID是路由器名称 password是路由器密码
响应 :
OK
7.1.3 查询 ESP8266 设备的 IP 地址
AT+CIFSR
响应 :
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"ee:fa:bc:96:20:8c"
+CIFSR:STAIP,"192.168.1.120"
+CIFSR:STAMAC,"ec:fa:bc:96:20:8c"
OK
7.1.4 建立UDP服务器
PC ESP8266 设备连接同⼀路由器,在 PC 端使⽤⽹络调试⼯具,建⽴⼀个UDP服务器。
打开网络调试助手,修改端口号为UDP,当本地IP出现时,修改端口号为8080,同时远程IP写入ESP8266模块的IP,修改端口号9090,点击侦听即可。
7.1.5 使能多连接
AT+CIPMUX=1
响应 :
OK

 

7.1.6 创建UDP传输
例如,分配连接号为 4 ,指令如下:
AT+CIPSTART=4,"UDP","192.168.1.103",8080,9090,0
响应 :
4,CONNNECT
OK
说明:
示例指令中的参数说明如下:
• "192.168.1.103", 8080 UDP 传输的远端 IP 和端⼝,即前⽂步骤 4 PC 建⽴的 UDP 端⼝;(这里的远端IP是相对于esp8266的远端,即网络调试助手中的本地IP
•9090   ESP8266 本地的 UDP 端⼝,⽤户可⾃⾏设置,如不设置则为随机值;
0 表示当前 UDP 传输建⽴后, UDP 远端不会被其他设备更改;即使有其他设备通过 UDP 协议发数据到
ESP8266 UDP 端⼝ 1112 ESP8266 的第 4 UDP 传输的远端也不会被替换,使⽤指令
“AT+CIPSEND=4, X” 发送数据,仍然是当前固定的 PC 端收到。

可见创建完UDP传输后,网络调试助手成功连接上远端esp8266模块。

7.1.7 发送数据
AT+CIPSEND=4,7 // Send 7 bytes to transmission NO.4
>UDPtest
// enter the data, no CR
响应 :
Recv 7 bytes
SEND OK

注意:
发送数据时,如果输⼊的字节数超过了设置⻓度( n ):
- 系统将提示 busy ,并发送数据的前 n 个字节,发送完成后响应 SEND OK
- 超出⻓度的部分数据被认为是⽆效数据,不被接受。

7.1.8 断开UDP传输
AT+CIPCLOSE=4(4为一开始分配的连接号)
响应 :
4,CLOSED
OK

可见断开连接后,远端发送数据到esp8266时,并不能接收数据。 

7.2 远端可变的 UDP 通信

7.2.1 配置 WiFi 模式
AT+CWMODE=3 // softAP+station mode
注:此AT指令通过试验会保存到Flash
响应 :
OK
7.2.2 连接路由器
AT+CWJAP="SSID","password" // SSID and password of router SSID是路由器名称 password是路由器密码
响应 :
OK
7.2.3 查询 ESP8266 设备的 IP 地址
AT+CIFSR
响应 :
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"ee:fa:bc:96:20:8c"
+CIFSR:STAIP,"192.168.1.120"
+CIFSR:STAMAC,"ec:fa:bc:96:20:8c"
OK
 7.2.4 建立UDP服务器
PC ESP8266 设备连接同⼀路由器,在 PC 端使⽤⽹络调试⼯具,建⽴⼀个UDP服务器。
打开网络调试助手,修改端口号为UDP,当本地IP出现时,修改端口号为8080,同时远程IP写入ESP8266模块的IP,修改端口号9090,点击侦听即可。
7.2.5 使能单连接
AT+CIPMUX=0
响应 :
OK

7.2.5 创建UDP传输
当使⽤ AT+CIPSTART 指令创建 UDP 通信,将最后⼀个参数设置为 2 时, UDP 通信的远端可改变。
AT+CIPSTART="UDP","192.168.1.103",8080,9090,2
响应 :
4,CONNNECT
OK
示例指令中的参数说明如下:
• "192.168.1.103"", 8080 UDP 传输的远端 IP 和端⼝,即前⽂ PC 建⽴的 UDP 端⼝;
• 9090   ESP8266 本地的 UDP 端⼝,⽤户可⾃⾏设置,如不设置则为随机值;
2 表示当前 UDP 传输建⽴后, UDP 传输远端仍然会更改; UDP 传输远端会⾃动更改为最近⼀个与 ESP8266 UDP 通信的远端。

 

 注意:这里设置的是单连接模式,所以在使用此通信方式时,需调用AT+CIPMUX?指令查询是否为0(单连接模式),同时单连接不需要加网络连接ID,与前面的固定远端UDP传输有所不同。

7.2.6 发送数据
AT+CIPSEND=7 // Send 7 bytes
>UDPtest
// enter the data, no CR
响应 :
Recv 7 bytes
SEND OK
注意:
发送数据时,如果输⼊的字节数超过了设置⻓度( n ):
- 系统将提示 busy ,并发送数据的前 n 个字节,发送完成后响应 SEND OK
- 超出⻓度的部分数据被认为是⽆效数据,不被接受。

这里为单连接模式,所以AT指令后面直接加上数据长度即可。

7.2.7 发送数据到其他指定远端
例如,发数据到192.168.1.103, 端⼝ 8081
AT+CIPSEND=7,"192.168.1.103",8081 // Send 7 bytes
>UDPtest
// enter the data, no CR
响应 :
Recv 7 bytes
SEND OK

 最左边的新开的其他远端UDP,通过修改端口号为8081,实现串口助手中发送指定长度的数据到端口号8081的远端。

7.2.8 断开UDP传输
AT+CIPCLOSE
响应 :
CLOSED
OK

 上面设置的是单连接模式,所以这里直接执行下图红框内AT指令即可。

8、AT指令应用示例_透传

8.1 TCP Client单连接透传

8.1.1 配置WIFI模式
AT+CWMODE=3 // softAP+station mode
响应 :
OK
8.1.2 连接路由器
AT+CWJAP="SSID","password" // SSID and password of router
响应 :
OK
8.1.3 查询 ESP8266 设备的 IP 地址

AT+CIFSR
响应 :
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"ee:fa:bc:96:20:8c"
+CIFSR:STAIP,"192.168.1.120"
+CIFSR:STAMAC,"ec:fa:bc:96:20:8c"
OK
8.1.4 建立TCP服务器
PC ESP8266 设备连接同⼀路由器,在 PC 端使⽤⽹络调试⼯具,建⽴⼀个TCP服务器。 打开网络调试助手,修改端口号为TCPServer,当本地IP出现时,修改端口号为8080,点击侦听即可。
8.1.5 ESP8266 设备作为 TCP client 连接到上述服务器
AT+CIPSTART="TCP","192.168.3.116",8080 //protocol, server IP and port
响应 :
OK

8.1.6 使能透传模式
AT+CIPMODE=1
响应 :
OK

8.1.7 ESP8266设备向服务器发送数据
AT+CIPSEND
> //From now on, data received from UART will be transmitted to server automatically.
注意:
发送数据时,如果输⼊的字节数超过了设置⻓度( n ):
- 系统将提示 busy ,并发送数据的前 n 个字节,发送完成后响应 SEND OK
- 超出⻓度的部分数据被认为是⽆效数据,不被接受。
进⼊透传模式发送数据,每包最⼤ 2048 节,或者每包数据以 20 ms 间隔区分。

8.1.8 退出发送数据

在透传发送数据过程中,若识别到单独的⼀包数据 “+++” ,则退出透传发送
- 如果使⽤键盘打字输⼊ “+++” ,可能耗时太⻓,不被认为是连续的三个 “+” ,建议使
⽤串⼝⼯具⼀次性发送 “+++” ,并请注意不要携带空格或换⾏符等不可⻅字符。
- 之后,请⾄少间隔 1 秒,再发下⼀条 AT 指令。
注意:
“+++“ 退出透传发送数据,回到正常 AT 指令模式。此时, TCP 连接仍然是保持的,可以再发 AT+CIPSEND
指令,重新开始透传。

注意:在输入"+++"数据时,需要取消换行,否则串口助手识别到多出来的\r\n,无论输入什么都会继续发送数据,如下:

解决方法是取消换行,单独发送"+++",过后要发送新指令,重新勾选上换行即可,如下:

8.1.9 退出透传模式
AT+CIPMODE=0
响应 :
OK

可见退出透传模式后,无法再向服务器发送数据,AT指令发送失败,可见该AT指令只在透传模式下生效。

8.1.10 断开TCP连接

AT+CIPCLOSE
响应 :
CLOSED
OK

8.2 UDP透传

8.2.1 配置 WiFi 模式
AT+CWMODE=3 // softAP+station mode
注:此AT指令通过试验会保存到Flash
响应 :
OK
8.2.2 连接路由器
AT+CWJAP="SSID","password" // SSID and password of router SSID是路由器名称 password是路由器密码
响应 :
OK
8.2.3 查询 ESP8266 设备的 IP 地址
AT+CIFSR
响应 :
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"ee:fa:bc:96:20:8c"
+CIFSR:STAIP,"192.168.1.120"
+CIFSR:STAMAC,"ec:fa:bc:96:20:8c"
OK
8.2.4 建立UDP服务器
PC ESP8266 设备连接同⼀路由器,在 PC 端使⽤⽹络调试⼯具,建⽴⼀个UDP服务器。
打开网络调试助手,修改端口号为UDP,当本地IP出现时,修改端口号为8080,同时远程IP写入ESP8266模块的IP,修改端口号9090,点击侦听即可。
8.2.5 ESP8266PC对应端⼝建⽴固定对端的UDP传输

AT+CIPSTART="UDP","192.168.1.103",8080,9090,2

响应 :
OK

 8.2.6 使能透传模式
AT+CIPMODE=1
响应 :
OK

8.1.7 ESP8266设备向服务器发送数据
AT+CIPSEND
> //From now on, data received from UART will be transmitted to server automatically.
注意:
发送数据时,如果输⼊的字节数超过了设置⻓度( n ):
- 系统将提示 busy ,并发送数据的前 n 个字节,发送完成后响应 SEND OK
- 超出⻓度的部分数据被认为是⽆效数据,不被接受。
进⼊透传模式发送数据,每包最⼤ 2048 节,或者每包数据以 20 ms 间隔区分。

8.1.8 退出发送数据

在透传发送数据过程中,若识别到单独的⼀包数据 “+++” ,则退出透传发送
- 如果使⽤键盘打字输⼊ “+++” ,可能耗时太⻓,不被认为是连续的三个 “+” ,建议使
⽤串⼝⼯具⼀次性发送 “+++” ,并请注意不要携带空格或换⾏符等不可⻅字符。
- 之后,请⾄少间隔 1 秒,再发下⼀条 AT 指令。
注意:
“+++“ 退出透传发送数据,回到正常 AT 指令模式。此时, UDP 连接仍然是保持的,可以再发 AT+CIPSEND
指令,重新开始透传。

注意:在输入"+++"数据时,需要取消换行,否则串口助手识别到多出来的\r\n,无论输入什么都会继续发送数据,如下:

解决方法是取消换行,单独发送"+++",过后要发送新指令,重新勾选上换行即可,如下:

8.1.9 退出透传模式
AT+CIPMODE=0
响应 :
OK

可见退出透传模式后,无法再向服务器发送数据,AT指令发送失败,可见该AT指令只在透传模式下生效。

8.1.10 断开UDP连接
AT+CIPCLOSE
响应 :
CLOSED
OK

9、多连接TCP Server

ESP8266 AT 仅⽀持建⽴⼀个 TCP 服务器,且必须使能多连接,即允许连接多个TCP client,虽然这里是TCP Server,但是是多个TCP client,所以网络调试助手端口号选择T CP client。

9.1 配置WiFi模式

AT+CWMODE=3 // softAP+station mode
响应 :
OK

9.2 使能多连接

AT+CIPMUX=1
响应 :
OK

9.3 建⽴ TCP server

AT+CIPSERVER=1 // default port = 333
响应 :
OK

9090端口号是esp8266模块通过我们设定的端口号。

9.4 连接路由器

AT+CWJAP="SSID","password" // SSID and password of router SSID是路由器名称 password是路由器密码
响应 :
OK

9.5 PC端使⽤⽹络调试⼯具,建⽴⼀个TCP client,连接ESP8266TCP server(上面设置9090)

注意:
ESP8266 作为 TCP server 有超时机制,如果连接建⽴后,⼀段时间内⽆数据来往, ESP8266 TCP server 会 将 TCP client 踢掉。因此,请在 PC TCP client 连上 ESP8266 TCP server 后建⽴⼀个 2s 的循环数据发送, ⽤于保持连接

若超过2s为发送数据,则会自动断开。 

9.6 发送数据

// ID number of connection is defaulted to be 0.
AT+CIPSEND=0, 4 // send 4 bytes to connection NO.0
>test // enter the data, no CR
响应 :
Recv 4 bytes
SEND OK
注意:
发送数据时,如果输⼊的字节数超过了设置⻓度( n ):
- 系统将提示 busy ,并发送数据的前 n 个字节,发送完成后响应 SEND OK
- 超出⻓度的部分数据被认为是⽆效数据,不被接受。
进⼊透传模式发送数据,每包最⼤ 2048 节,或者每包数据以 20 ms 间隔区分。

这里AT指令中网络连接号为0是默认为0,若有多个TCP Client连接则会增加序号,例如多增加一个TCP Clinet第二个序号为1,如下:

序号0为8080端口号,序号1为8081端口号。

9.7 断开TCP连接

AT+CIPCLOSE=5(关闭所有序号的TCP连接)
响应 :
CLOSED
OK

可以输入对应序号关闭TCP连接,如下:

也可以输入5关闭所有TCP连接,如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/643787.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker容器概念介绍与基本管理

前言 在软件开发和部署环境中,使用 Docker 等容器技术可以帮助团队实现快速、一致、可靠的应用程序部署,提高开发效率和应用程序的可移植性。 目录 一、虚拟化产品介绍 1. 云服务模型 1.1 IaaS 1.2 PaaS 1.3 SaaS 1.4 DaaS 2. 产品介绍 2.1 虚…

梯度,hesse阵与Jacobi矩阵

分清楚三个量的含义和计算方法。 梯度 表征的是一个列向量,是相对于某个方向而言的,但是某个方向上可能有多个变量,所以梯度不是简单的直接求偏导,并且说了,它是一个列向量,所以, 我们设 f : …

【Linux】解决ubuntu20.04版本插入无线网卡没有wifi显示【无线网卡Realtek 8811cu】

ubuntu为Realtek 8811cu安装驱动,解决wifi连接问题 1、确认无线网卡的型号-Realtek 8810cu2、下载并配置驱动 一句话总结:先确定网卡的型号,然后根据网卡的型号区寻找对应的驱动下载,下载完成之后在ubuntu系统中进行编译&#xff…

STM32的GPIO输入和输出函数详解

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. GPIO模式 2. GPIO输出 2.1 RCC 2.2 GPIO 3. 代码示例 3.1 RCC时钟 3.2 GPIO初始化 3.3 GPIO输出函数 3.4 推挽输出和开漏输出 4. GPIO输入 4.1 输入模式 4.2 数据读取函数 5. C语言语法 1…

STM32H750时钟频率和功耗以及RTC功能测试

STM32H750时钟频率和功耗和RTC功能测试 📌相关篇《STM32H750片外QSPI启动配置简要》 ✨在使用STM32CubeMX修改STM32H750时钟树参数时,如果使用软件自动求解,这是一个非常耗时的操作,有时候还不一定成功,还是推荐使用手…

【大模型】大模型时代的语音合成:音频的离散化表示

🔒文章目录 📊什么是音频离散化🎬音频离散化是什么 🌈SoundStream、Encodec🌂 SoundStream🚀Encodec 📊什么是音频离散化 🎬音频离散化是什么 在自然语言处理(NLP&…

从0到1—POC编写基础篇(二)

接着上一篇 POC常用基础模块 urllib 模块 Python urllib 库用于操作网页 URL,并对网页的内容进行抓取处理。 urllib 包 包含以下几个模块: ●urllib.request - 打开和读取 URL。 ●urllib.error - 包含 urllib.request 抛出的异常。 ●urllib.parse - …

WEB攻防-ASP中间件IIS文件上传解析安全漏洞

漏洞原理: 基于文件 IIS6.0默认不解析;号后面的内容,例如1.asp;.jpg会当成1.asp解析,相当于分号截断。 基于文件夹 IIS6.0会将/*.asp/文件夹下的文件当成asp解析。 案例: 写一个木马文件,并改为jpg后缀 GIF89agif8…

Maven:配置与使用指南1

https://mvnrepository.com Maven 1.maven简介 不同模块的jar包以及同时设计的功能的微小变化版本; 真实的开发环境:我们将我们的源代码在服务器上重新编译重新打包,工程升级维护过程繁琐 1.Maven是一个项目管理工具,将项目开…

代码随想录算法训练营第四十六天| LeetCode139.单词拆分

一、LeetCode139.单词拆分 题目链接/文章讲解/视频讲解:https://programmercarl.com/0139.%E5%8D%95%E8%AF%8D%E6%8B%86%E5%88%86.html 状态:已解决 1.思路 单词明显就是物品,字符串s明显就是背包,那么问题就变成了物品能不能把背…

IDEA pom.xml依赖警告

IDEA中,有时 pom.xml 中会出现如下提示: IDEA 2022.1 升级了检测易受攻击的 Maven 和 Gradle 依赖项,并建议修正,通过插件 Package Checker 捆绑到 IDE 中。 这并不是引用错误,不用担心。如果实在强迫症不想看到这个提…

高精度模板

高精度模板 1. 高精度加法2. 高精度减法3. 高精度乘法4. 高精度除法 1. 高精度加法 高精度加法其实就是一个模拟过程,模拟我们正常计算。但是要注意的是,我们正常将两个数进行相加的时候说从右往左进行相加的,所以这里我们的字符串也是要从右…