WIFI 应用层代码

2024-08-25 01:12
文章标签 代码 wifi 应用层

本文主要是介绍WIFI 应用层代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.0 定义枚举类型

typedef enum
{WIFI_COMM_WAIT,			// AT 等待命令WIFI_COMM_OK,			// AT 命令完成WIFI_COMM_FALL,			// AT 命令失败
}WifiCommState_t;

 注:该枚举类型的作用是,定义三个成员变量,分别表示AT指令等待发送,AT指令接受成功,AT指令接受失败。


2.0 创建结构体函数

/*创建结构体类型的函数
*/
static WifiCommState_t AtCmdHandle(char *cmd, char *rsp, uint32_t timeoutMs)
{static WifiCommState_t s_commState = WIFI_COMM_OK;static uint64_t s_sendCmdTime;char *recvStrBuf;if (s_commState != WIFI_COMM_WAIT){if (cmd != NULL){SendWifiModuleStr(cmd);}s_commState = WIFI_COMM_WAIT;s_sendCmdTime = GetSysRunTime();}else{if ((GetSysRunTime() - s_sendCmdTime) < timeoutMs){recvStrBuf = RecvWifiModuleStr();if (strstr(recvStrBuf, rsp) != NULL){s_commState = WIFI_COMM_OK;}}else{s_commState = WIFI_COMM_FALL;}}return s_commState;
}

注:这个函数是一个结构体函数,表示AT指令的句柄,有三个参数前两个参数都表示char 类型的指针变量,第一个参数表示发送的AT指令,第二个参数表示返回的值,第三个参数表示超时时间定义了两个静态局部变量第一个局部变量初始值赋值为AT指令发送完成,第二个变量用于记录发射红AT指令的时间,第三个变量获取了一个char * 类型的指针变量,用于存储返回的字符数据,使用 if 语句对指令的状态进行判断如果当前的指令状态不处于等待的状态就再次使用 if 判断当前的指令是否为空如果为空则发送WIFI模组的字符命令(AT指令),否则状态赋值为等待状态,同时获取当前系统时间...


3.0 创建结构体

typedef struct
{// 需要发送的AT指令char *cmd;// 期望的应答数据char *rsp;// 得到应答的超时时间uint32_t timeoutMs;
}AtCmdInfo_t;

注:结构体的作用如注释所示


4.0 模组初始化命令集

/*模组初始化命令集
*/
static AtCmdInfo_t g_checkModuleCmdTable[] = 
{{.cmd = "AT+RST\r\n",	// 软件复位.rsp = "ready",.timeoutMs = 3000,},{.cmd = NULL,			// 等待.rsp = "XXXXX",.timeoutMs = 1000,},{.cmd = "ATE0\r\n",        // 关闭回显.rsp = "OK",.timeoutMs = 500,},{.cmd = "AT+CWMODE=1\r\n",      // AT+CWMODE 命令用于设置 Wi-Fi 模块的工作模式。.rsp = "OK",.timeoutMs = 500,	},{.cmd = "AT+CWRECONNCFG=1,0\r\n",  // 设置 Wi-Fi 重连,重连间隔1S,无次数限制.rsp = "OK",.timeoutMs = 100,	},
};

软件复位

 乐鑫网址:基础 AT 命令集 - ESP32-C2 - — ESP-AT 用户指南 latest 文档

开启和关闭回显对应的AT指令集


5.0 创建枚举类型

typedef enum
{AT_RST,AT_RST_DELAY,AT_E0,AT_CWMODE_1,AT_CWRECONNCFG,
}AtCheckModuleCmdType;

...


 

这篇关于WIFI 应用层代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1104132

相关文章

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

全屋WiFi 7无死角! 华硕 RP-BE58无线信号放大器体验测评

《全屋WiFi7无死角!华硕RP-BE58无线信号放大器体验测评》家里网络总是有很多死角没有网,我决定入手一台支持Mesh组网的WiFi7路由系统以彻底解决网络覆盖问题,最终选择了一款功能非常... 自2023年WiFi 7技术标准(IEEE 802.11be)正式落地以来,这项第七代无线网络技术就以超高速

深入解析 Java Future 类及代码示例

《深入解析JavaFuture类及代码示例》JavaFuture是java.util.concurrent包中用于表示异步计算结果的核心接口,下面给大家介绍JavaFuture类及实例代码,感兴... 目录一、Future 类概述二、核心工作机制代码示例执行流程2. 状态机模型3. 核心方法解析行为总结:三

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

C#代码实现解析WTGPS和BD数据

《C#代码实现解析WTGPS和BD数据》在现代的导航与定位应用中,准确解析GPS和北斗(BD)等卫星定位数据至关重要,本文将使用C#语言实现解析WTGPS和BD数据,需要的可以了解下... 目录一、代码结构概览1. 核心解析方法2. 位置信息解析3. 经纬度转换方法4. 日期和时间戳解析5. 辅助方法二、L

Python使用Code2flow将代码转化为流程图的操作教程

《Python使用Code2flow将代码转化为流程图的操作教程》Code2flow是一款开源工具,能够将代码自动转换为流程图,该工具对于代码审查、调试和理解大型代码库非常有用,在这篇博客中,我们将深... 目录引言1nVflRA、为什么选择 Code2flow?2、安装 Code2flow3、基本功能演示

IIS 7.0 及更高版本中的 FTP 状态代码

《IIS7.0及更高版本中的FTP状态代码》本文介绍IIS7.0中的FTP状态代码,方便大家在使用iis中发现ftp的问题... 简介尝试使用 FTP 访问运行 Internet Information Services (IIS) 7.0 或更高版本的服务器上的内容时,IIS 将返回指示响应状态的数字代

MySQL 添加索引5种方式示例详解(实用sql代码)

《MySQL添加索引5种方式示例详解(实用sql代码)》在MySQL数据库中添加索引可以帮助提高查询性能,尤其是在数据量大的表中,下面给大家分享MySQL添加索引5种方式示例详解(实用sql代码),... 在mysql数据库中添加索引可以帮助提高查询性能,尤其是在数据量大的表中。索引可以在创建表时定义,也可