ESP32-Station Mode例程解析

本文针对ESP32的Station模式Wi-Fi功能进行解析,通过理解并分析ESP32的Wi-Fi编程模型及配置流程,展示了如何使ESP32连接到WiFi热点,以实现单片机的联网与手机控制功能。

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

由于毕设需要单片机实现联网功能进而实现手机控制,我对ESP32的Wi-Fi的Station的程序进行一番理解和整理。
ESP32例程下载地址

我们先分析每一句代码所蕴含的信息:

/* WiFi station Example
This example code is in the Public Domain (or CC0 licensed, at your option.)
Unless required by applicable law or agreed to in writing, this
software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied.*/

#include <string.h>//内存和字符串函数的定义
#include "freertos/FreeRTOS.h"//实时操作系统freertos头文件
#include "freertos/task.h"//freertos任务(线程)头文件
#include "freertos/event_groups.h"//freertos事件组
#include "esp_system.h"//ESP32系统头文件(包括系统枚举的定义和函数的声明)
#include "esp_wifi.h"//ESP32Wi-Fi功能头文件
#include "esp_event_loop.h"//ESP32事件轮询头文件
#include "esp_log.h"//ESP32日志信息头文件(打印输出代码信息)
#include "nvs_flash.h"//Non-volatile storage (NVS)非易失性存储库。用于把数据存储到 flash中,掉电或重启后数据仍然存在
#include "lwip/err.h"//轻量级TCP/IP协议栈之错误代码相应的头文件
#include "lwip/sys.h"//轻量级TCP/IP协议栈之系统相应的头文件
/* The examples use WiFi configuration that you can set via 'make menuconfig'.
If you'd rather not, just change the below entries to strings with
the config you want - ie #define EXAMPLE_WIFI_SSID "mywifissid"
*/
//可以通过make menuconfig(Linux下)进行配置Wi-Fi Station要连接的AP的SSID和PSW

#define EXAMPLE_ESP_WIFI_SSID CONFIG_ESP_WIFI_SSID//AP对应的SSID
#define EXAMPLE_ESP_WIFI_PASS CONFIG_ESP_WIFI_PASSWORD//AP对应的连接密钥
#define EXAMPLE_ESP_MAXIMUM_RETRY CONFIG_ESP_MAXIMUM_RETRY//Station连接AP时重试的次数
//上面这三个宏定义可以直接修改(注意SSID和PSW都是字符串形式)或者在Kconfig.projbuild文件中进行修改。

/* FreeRTOS event group to signal when we are connected*/
static EventGroupHandle_t s_wifi_event_group;
/* The event group allows multiple bits for each event, but we only care about one event
* - are we connected to the AP with an IP? */
const int WIFI_CONNECTED_BIT = BIT0;//事件组允许每个事件有多个位,但是我们只关心一个事件,所以只设置一位(可追溯程序找到#define BIT0 0x00000001)
static const char *TAG = "wifi station";//该程序的标签为WiFi基站
static int s_retry_num = 0;//重试次数计数
static esp_err_t event_handler(void *ctx, system_event_t *event<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值