首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Wifi模块-ESP-01s

  • 25-03-04 09:02
  • 3971
  • 5653
blog.csdn.net

蓝牙,ESP-01s,Zigbee, NB-Iot等通信模块都是基于AT指令的设计

那什么是AT指令呢

简介: AT指令集是从终端设备(Terminal Equipment,TE)或数据终端设备(Data Terminal Equipment,DTE)向终端适配器(Terminal Adapter,TA)或数据电路终端设备(Data Circuit Terminal Equipment,DCE)发送的。

其对所传输的数据包大小有定义:即对于AT指令的发送,除AT两个字符外,最多可以接收1056个 字符的长度(包括最后的空字符)。 每个AT命令行中只能包含一条AT指令;对于由终端设备主动向PC端报告的URC指示或者response 响应,也要求一行最多有一个,不允许上报的一行中有多条指示或者响应。AT指令以回车作为结尾,响应或上报以回车换行为结尾。

ESP-01s出厂波特率正常是115200, 注意:AT指令,控制类都要加回车,数据传输时不加回车

 

然后开关网络助手,设立TCP服务器

 

 连接服务器

AT+CIPSTART="TCP","192.168.0.113",8888 //指令,注意双引号逗号都要半角(英文)输入 CONNECT //结果:成功

OK //结果:成功

发送数据

AT+CIPSEND=4 // 设置即将发送数据的长度 (这里是4个字节)

>CLCA // 看到大于号后,输入消息,CLCA,不要带回车

Response :SEND OK //结果:成功 //注意,这种情况下,每次发送前都要先发送AT+CIPSEND=长度 的指令,再发数据!

开启透传更方便

AT+CIPMODE=1 //开启透传模式

Response :OK

 AT+CIPSEND //带回车

Response: > //这个时候随意发送接收数据咯

退出透传模式

//在透传发送数据过程中,若识别到单独的⼀包数据 “+++”,则退出透传发送

可以直接用单片机实现:

  1. #include "reg52.h"
  2. #include "intrins.h"
  3. #include
  4. #define SIZE 12
  5. sfr AUXR = 0x8E;
  6. sbit D5 = P3^7;
  7. char cmd[SIZE];
  8. code char LJWL[]  = "AT+CWJAP=\"542413\",\"545457\"\r\n";
  9. code char LJFWQ[] = "AT+CIPSTART=\"TCP\",\"192.168.0.113\",8880\r\n"; 
  10. char TCMS[]  = "AT+CIPMODE=1\r\n";
  11. char SJCS[]  = "AT+CIPSEND\r\n";
  12.  
  13. void UartInit(void)        //[email protected]
  14. {
  15.     AUXR = 0x01;
  16.     SCON = 0x50; //配置串口工作方式1,REN使能接收
  17.     TMOD &= 0x0F;
  18.     TMOD |= 0x20;//定时器1工作方式位8位自动重装
  19.     
  20.     TH1 = 0xFD;
  21.     TL1 = 0xFD;//9600波特率的初值
  22.     TR1 = 1;//启动定时器
  23.     
  24.     EA = 1;//开启总中断
  25.     ES = 1;//开启串口中断
  26. }
  27. void Delay1000ms()        //@11.0592MHz
  28. {
  29.     unsigned char i, j, k;
  30.     _nop_();
  31.     i = 8;
  32.     j = 1;
  33.     k = 243;
  34.     do
  35.     {
  36.         do
  37.         {
  38.             while (--k);
  39.         } while (--j);
  40.     } while (--i);
  41. }
  42. void sendByte(char data_msg)
  43. {
  44.     SBUF = data_msg;
  45.     while(!TI);
  46.     TI = 0;
  47. }
  48. void sendString(char* str)
  49. {
  50.     while( *str != '\0'){
  51.         sendByte(*str);
  52.         str++;
  53.     }
  54. }
  55. void main()
  56. {
  57.     D5 = 1;
  58.     //配置C51串口的通信方式
  59.     UartInit();
  60.     
  61.     while(1){
  62.         //Delay1000ms();
  63.         //往发送缓冲区写入数据,就完成数据的发送
  64.        
  65.         sendString(LJWL);
  66.         Delay1000ms();
  67.         Delay1000ms();
  68.         Delay1000ms();
  69.         Delay1000ms();
  70.         Delay1000ms();
  71.     
  72.         sendString(LJFWQ);
  73.         Delay1000ms();
  74.         Delay1000ms();
  75.         Delay1000ms();
  76.         Delay1000ms();
  77.         Delay1000ms();
  78.         sendString(TCMS);
  79.         Delay1000ms();
  80.         Delay1000ms();
  81.         Delay1000ms();
  82.         Delay1000ms();
  83.         Delay1000ms();
  84.         sendString(SJCS);
  85.         Delay1000ms();
  86.         Delay1000ms();
  87.         Delay1000ms();
  88.         Delay1000ms();
  89.         Delay1000ms();
  90.     }
  91. }
  92. void Uart_Handler() interrupt 4
  93. {
  94.     static int i = 0;//静态变量,被初始化一次
  95.     if(RI)//中断处理函数中,对于接收中断的响应
  96.     {
  97.             RI = 0;//清除接收中断标志位
  98.             cmd[i] = SBUF;
  99.             i++;
  100.             if(i == SIZE){
  101.                 i = 0;
  102.             }
  103.             if(strstr(cmd,"en")){
  104.                 D5 = 0;//点亮D5
  105.                 i = 0;
  106.                 memset(cmd,'\0',SIZE);
  107.             }
  108.             if(strstr(cmd,"se")){
  109.                 D5 = 1;//熄灭D5
  110.                 i = 0;
  111.                 memset(cmd,'\0',SIZE);
  112.             }
  113.     }
  114.         
  115.     if(TI);
  116. }

文章知识点与官方知识档案匹配,可进一步学习相关知识
C技能树首页概览194353 人正在系统学习中
注:本文转载自blog.csdn.net的热爱嵌入式的小佳同学的文章"https://blog.csdn.net/m0_74712453/article/details/128519852"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top