ESP8266AT指令集学习笔记
AT指令集分类
指令集主要分为:基础 AT 命令、Wifi 功能 AT 命令、TCP/IP 工具箱 AT 命令等。
AT指令集简介
AT指令集是从终端设备或数据终端设备向终端适配器或数据电路终端设备发送的。
其对所传输的数据包大小有定义:即对于AT指令的发送,除AT两个字符外,最多可以接收1056个字符的长度(包括最后的空字符)。
每个AT命令行中只能包含一条AT指令;对于由终端设备主动向PC端报告的URC指示或者response响应,也要求一行最多有一个,不允许上报的一行中有多条指示或者响应。AT指令以回车作为结尾,响应或上报以回车换行为结尾。
AT指令是一种不需要具体编程的开发方式,直接使用电脑给模块发送相应的指令就可以实现对它的控制。一般买来的模块都有烧录好的固件,假如没有可以自己烧录一个。
基础AT指令
- AT:测试AT启动,返回OK
2. AT + RST:重启模块,返回OK
3. AT + GMR:查看版本信息,返回OK,为8位版本号
wifi功能AT指令
- AT+CWMODE?:查询WIFI应用模式,返回+CWMODE:OK
- AT+CUMODE=:设置wifi应用模式,返回OK;指令重启后生效,mode:1.Station模式,2.AP模式,3.AP+Station兼容模式,备注,station:客户端,AP:服务器;
ESP8266 AT指令设置及51单片机的控制
(1) 设置模块为ST模式:发送:AT+CWMODE=1;返回:OK
(2) 查看当前WiFi列表:AT+CWLAP返回: OK
(3) 加入当前无线网络:发送命令:AT+CWJAP=”MERSAIN”,”XXXXXXXX”
第一个填你想要连接的WiFi名称,第二个填WiFi的密码
(5)查看当前模块IP地址:发送: AT+CWLIF返回:当前IP地址
(6)开启多连接模式 :发送命令:AT+CIPMUX=1返回:OK
(6)建服务器 发送命令:AT+CIPSERVER=1,8080(设置指令)
指令:AT+CIPSERVER=<mode>[,<port>]
说明::0-关闭server模式,1-开启server模式 :端口号,缺省值为333 响应:OK
这样模块就设置好了。可以用手机连接模块发送命令了。这里面要做的是对模块的各个引脚进行讲解
RX:模块串口通信的接收引脚,接到单片机的TX引脚。
GPIO0:默认情况下不接线,在刷固件时要接低电平。
GPIO2:悬空
GND:接地
TX:模块的发射端,接单片机的RX接口。
CH_PD:接高电平。
RST:低电平复位,默认悬空。
VCC:接3.3V的高电平。
注:模块与5V单片机通信时候,I/O口要接2K的电阻。
ATCmd库中附带的示例代码AT指令控制板载LED (AT_LED.ino)
#include <ATCommand.h>ATCommand atc;//初始化AT指令集
void initATCommands(){//定义一个测试指令,示例:AT+TEST=1,2,3...CommandItem cmdTest("TEST", [](CommandParameter param)->String{Serial.printf("parameter count : %d\n", param.count());for (int i = 0; i < param.count(); i++){Serial.printf("arg%d=%s\n", i, param.get(i).c_str());}return "OK";});//定义一个控制板载LED的指令,示例:AT+LED=0 或 AT+LED=1CommandItem cmdLED("LED", [](CommandParameter param)->String{if (param.count() != 1){return "ERROR";}//获取第0位参数String arg0 = param.get(0);if (arg0.equals("0")){digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW}else if (arg0.equals("1")){digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)}else{return "ERROR";}return "OK";});atc.addCommandItem(cmdTest);atc.addCommandItem(cmdLED);
}//接收来自串口的数据
void receiveDataFromSerial(){static String temp_s = "";char temp_c;if (!Serial)return;while (Serial.available() > 0){temp_c = char(Serial.read()); //单字节读取串口数据if (temp_c == '\r') { //判断是否为终止符Serial.println(atc.parse(temp_s).c_str());temp_s = "";}else {temp_s += temp_c;}delay(2);}}// the setup function runs once when you press reset or power the board
void setup() {//打开串口Serial.begin(115200);Serial.println("\nStart");// initialize digital pin LED_BUILTIN as an output.pinMode(LED_BUILTIN, OUTPUT);//初始化AT指令集initATCommands();
}// the loop function runs over and over again forever
void loop() {//接收串口数据receiveDataFromSerial();delay(100);
}
创建命令项
使用CommandItem 创建命令项,在构造函数中为其设定关键字和回调函数:
CommandItem 命令项变量名称(“命令关键字”, [](CommandParameter param)->String{
//需要执行的执行代码
//……
return “返回结果(字符串)”;
});
1
2
3
4
5
解析AT指令
使用ATCommand的parse()方法解析字符串类型的AT指令并获得字符串类型的返回值:
String result = ATCommand对象.parse(“AT指令”);
1
返回结果
输入:AT+LED=1
输出:+LED:OK
输入:AT+LED=0
输出:+LED:OK
输入:AT+TEST
输出:
parameter count : 0
+TEST:OK
输入:AT+TEST=1,2,3
输出:
parameter count : 3
arg0=1
arg1=2
arg2=3
+TEST:OK
学习链接分享
ESP8266使用AT指令开发示例
指令集详解
多种语法规则
AT+语法规则
ESP8266 WIFI模块AT指令汇总
https://blog.csdn.net/lalala098/article/details/81240806
使用AT指令的步骤
具体步骤
ESP8266AT指令集学习笔记相关推荐
- ARMv8 架构与指令集.学习笔记
声明:本文转载来源:http://blog.csdn.net/forever_2015/article/details/50285865#comments 目 录 第1章 ARMv8简介. 3 1.1 ...
- SSE/AVX指令集学习笔记
因为最近在做SSE/AVX指令集优化视频编码的某些模块,所以要学习SSE指令集的用法.本帖主要记录本人用到的函数的用法. 一.SSE指令(128位寄存器) __m128i _mm_load_si1 ...
- MIPS指令集(学习中)
MIPS指令集(学习笔记) 先序: 1.指令存储在存储器当中,每条指令包括操作类型.操作数. 2.MIPS汇编语法规定,可以用两种方式表示寄存器,比如10或10或10或t2都是"10号寄存器 ...
- JVM学习笔记之字节码指令集
目录 背景 概述 执行模型 字节码与数据类型 指令分类 加载与存储指令 再谈操作数栈与局部变量表 局部变量压栈指令 常量入栈指令 出栈装入局部变量表指令 算术指令 所有算术指令 比较指令的说明 类型转 ...
- Freetype学习笔记(轉)
Freetype学习笔记 转载时请注明出处:http://blog.csdn.net/absurd GTK+(基于DirectFB)的字体绘制是通过pango+freetype+fontconfig三 ...
- jvm学习笔记(二)
jvm学习笔记(二) 文章目录 jvm学习笔记(二) 1.全部笔记链接 2. Native关键字 3.关于JVM规范 3.1 JVM规范中运行时数据区的概念 4.HotSpot的JVM运行时数据区 4 ...
- ARMV8 datasheet学习笔记3:AArch64应用级体系结构
1.前言 本文主要从应用的角度介绍ARMV8的编程模型和存储模型 2. AArch64应用级编程模型 从应用的角度看到的ARM处理器元素: 可见的元素(寄存器/指令) 说明 可见的寄存器 R0-R30 ...
- 学习笔记-AngularJs(十)
前面一直在说自定义指令,但是却一直没有一次系统地去了解,现在需要我们一起来学习如何去使用自定义指令,去丰富html标签.属性,实现多元化.多功能的标签(或是属性).辣么,啥是指令?要了解指令,首先需要 ...
- Cortex-M3学习笔记(一)
Cortex-M3学习笔记(一) 首先,在学习Cortex-M3时,我们必须要知道必要的缩略语.整理如下:AMBA:先进单片机总线架构 ADK:AMBA设计套件 AHB:先进高性能总线 AH ...
- CSS入门学习笔记+案例(1)
CSS入门学习 一.CSS简介 1.什么是CSS CSS:Cascading Style Sheet 层叠样式表 是一组样式设置的规则,用于控制页面的外观样式 2.为什么使用CSS 实现内容与样式的分 ...
最新文章
- 语言与智能:维特根斯坦框架、人工智能以及共情的出现
- Linux 应用编程
- Mysql select into outfile NULL值导出的处理方法
- 【学习笔记】数据链路层——流量控制:停止等待协议、后退N帧协议(GBN)、选择重传协议(SR)
- 【福利】周志华教授专著《集成学习:基础与算法》上市,豆瓣满分森林书破解AI实践难题...
- Java Scanner next()方法与示例
- hbase本地调试环境搭建
- 7-26 单词长度 (15 分)
- Delphi水平测试试卷(初中级)样题
- textbox 下拉模糊查询ajax,Ajax实现在textbox中输入内容,动态从数据库中模糊查询显示到下拉框中...
- centos5.5 64位yum安装extmail
- java struts validate_重写ActionForm中的Validate()方法
- 400元DIY实现手机 笔记本 GPS导航
- 浅析淘宝数据魔方技术架构
- animate发布html5教程,Adobe Animate CC 中的 HTML 发布模板 - Adobe Animate 用户指南
- 应用宝认领应用签名_腾讯开放平台第三方应用签名参数sig的说明
- 好养活的“狗剩儿”和“胖丫儿”。龙芯电脑测评!
- 1.3(1) 框架——内嵌框架
- 用计算机语言写祝福语,程序员祝福语
- 一些不错的开源代码网站