3. 完整代码


3.1. 完整代码

话不多说,直接提供代码

#include <ESP8266WiFi.h>

#ifndef STASSID
#define STASSID "ct-iot"     // 你的 WiFi 热点名称
#define STAPSK "111222333"  // 你的 WiFi 密码
#endif

const char* ssid = STASSID;
const char* password = STAPSK;

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(115200);

  // 开始连接到 WiFi 网络
  Serial.println();
  Serial.println();
  Serial.print("连接到 ");
  Serial.println(ssid);

  /* 明确将 ESP8266 设置为 WiFi 客户端,否则,默认情况下,
     它会尝试充当客户端和接入点,可能会导致
     WiFi 网络上的其他 WiFi 设备出现网络问题。 */
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi 连接成功");
  Serial.println("IP 地址: ");
  Serial.println(WiFi.localIP());
}

void loop() {
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);
  digitalWrite(LED_BUILTIN, HIGH);
  delay(2000);
}

读者需要做的是将 WIFI 账号密码更改为自己的,就可以连上 WIFI 了哈,然后烧录即可,也就是点击以下的这个按钮。

3.2. 烧录代码

烧录代码分为以下三步:

  1. 选择开发板
  2. 选择串口
  3. 点击下载

(下图是下载的时候的进度图)

esp8266与stm32单片机连接图_嵌入式硬件

3.3. 打开串口查看数据

点击软件右上角的这个按钮就可以打开串口调试组手,打开的时候是没有数据的,我们需要按一下 ESP8266 烧录器上面的复位按钮

esp8266与stm32单片机连接图_单片机_02

  • 可以看到已经能打印出 IP 了

esp8266与stm32单片机连接图_esp8266与stm32单片机连接图_03

4. 代码讲解


上面我们已经提供了全部的代码,如果你想了解代码的含义,那么可以继续读下去。

#include <ESP8266WiFi.h>
  • 这行代码是包含了ESP8266WiFi库,这样我们就可以在代码中使用ESP8266WiFi模块提供的功能
#ifndef STASSID
#define STASSID "your-ssid"     // 你的 WiFi 热点名称
#define STAPSK "your-password"  // 你的 WiFi 密码
#endif
  • 这部分是用于定义WiFi的名称和密码。STASSID是你的WiFi热点名称,STAPSK是你的WiFi密码。如果在代码中没有提供这些值,将使用这里定义的默认值(your-ssid,your-password)
const char* ssid = STASSID;
const char* password = STAPSK;
  • 这里定义了两个变量ssidpassword,分别用于存储WiFi热点的名称和密码
void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(115200);
  Serial.println();
  Serial.println();
  Serial.print("连接到 ");
  Serial.println(ssid);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi 连接成功");
  Serial.println("IP 地址: ");
  Serial.println(WiFi.localIP());
}

setup()函数是Arduino中的一个特殊函数,它在开发板启动时执行一次。在这个函数中,我们做了以下操作:

  • 设置LED_BUILTIN引脚为输出模式,以便控制LED灯
  • 初始化串行通信,设置波特率为115200,并打印一些提示信息
  • 尝试连接到WiFi网络,并等待连接成功,在等待过程中,我们通过点号的形式在串行监视器中显示连接状态
  • 如果连接成功,打印WiFi连接成功的消息以及分配给开发板的IP地址
void loop() {
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);
  digitalWrite(LED_BUILTIN, HIGH);
  delay(2000);
}

loop()函数是Arduino中另一个特殊函数,它会不断循环执行。在这个函数中,我们简单地让LED灯以一定的频率闪烁,以表示 WIFI 连接成功,LED 灯闪烁。