软件:

电脑:   安信可串口调试助手(左,去安信可官网下载即可)

手机: TCP连接(右,随便找个商店搜一下TCP关键字都有一堆,我用的第一个TCP)

硬件:

  1. USB—TTL下载器
  2. Esp8266—01s模块(注意是01S,内置上拉电阻,比较方便)
  3. 杜邦线若干
  4. 51最小系统

手机通过esp8266和电脑相连接:

步骤:

  1. 下载器的3.3V gnd分别和esp8266_01s的端口相连

连接txd和rxd端口(下载器的TXD连到WIFI模块的RXD,另一对同理);

2.连接好后插入电脑,去查看端口号,这个COM号等下要用

(如果插上电脑后没反应,多半是驱动没有安装好,按照道理讲,平时都有用TTL下载器来下载,驱动应该是早就装好了)

.打开安信可串口调试助手

一.串口号就是刚刚查看的那个COM口,这个别选错了,每个人的电脑可能会不同

二.Esp8266_01s的波特率默认是115200

   其他的参数校验位…啥的都不用调节

3.依次发送以下指令7条

(具体指令的作用去查一下百度就好,这里直接给出)

AT

AT+CWMODE=2

AT+RST

AT+CWSAP="esp8266","12345678",6,4

//这里设置的esp8266是WIFI名 12345678是WIFI密码,自己可更改

AT+CIPMUX=1

AT+CIPSERVER=1,8080

AT+CIFSR

发送7条命令的结果如下

PS:

8080       是端口号

192.168.4.1  是地址

这两个后面利用手机进行TCP调试的时候要用到记着

4.根据自己设置的wife名字和密码用手机连接上

打开手机端的串口调试调试助手,利用刚才记录下来的端口号和地址

进行连接

PS:连接的时候一定要关闭手机的数据网络,否者连接不上,我也不知道为啥

连接成功会有提示:

5.接下来电脑和后手机端就可以通过esp8266互相发送数据了

手机通过esp8266和单片机相连接接:

和电脑相连设置完一些初始化信息后(如设置WIFI名称密码之类的,就是像刚刚那样子用电脑端调试助手发送那7条指令),再进行这下面的

  1. 注意先要利用电脑端的调试助手发送AT+CIOBAUD=9600,8,1,0,0  这条指令,将ESP8266的波特率修改为9600,才可以和单片机匹配,否者esp8266和单片机无法正常通信()。(就发完上面7条指令后,紧接着发这一条就可以了)

  (注意电脑端的调试助手如果还要发送信息的话,波特率就要调成9600了)

2..接线

这个接线时一样的,8266的TXD连接到最小系统的RXD;RXD连接到TXD

关于电源和地,最小系统和esp8266一定要共地!!否者可能连接不上

3.附上51的代码9(参考了很多资料,但是依旧有些BUG,自己试试)

#include<reg51.h>
#include <intrins.h>sbit LED=P1^1;
unsigned char Recive_table[15];//用于接收ESP8266串口接收到的数据void DelayX10us(unsigned char t)
{do {_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();} while (--t);
}void Uart_Init(unsigned int baud){SCON = 0x50; //配置串口为模式 1TMOD &= 0x0F; //清零 T1 的控制位TMOD |= 0x20; //配置 T1 为模式 2TH1 = 256 - (11059200/12/32)/baud; //计算 T1 重载值TL1 = TH1;   //初值等于重载值ET1 = 0;     //禁止 T1 中断ES = 1;      //使能串口中断PS=1;       //设置串口中断优先级最高TR1 = 1;     //启动 T1  }void WIFI_Init(){char *a="AT+CIPMUX=1\r\n";char *b="AT+CIPSERVER=1,8080\r\n";while(*a!='\0'){SBUF=*a;      //写入要发送的字符while(!TI);    //等待发送完成TI=0;          //发送a++;}DelayX10us(500);while(*b!='\0'){SBUF=*b;  while(!TI);    //等待发送完成TI=0;b++;}}void main()
{EA=1;Uart_Init(9600);DelayX10us(500);WIFI_Init();DelayX10us(500);WIFI_Init();      //防止两条数据写入不成功,再写入一次while(1);
}void Uart() interrupt 4 //中断程序
{static unsigned int i=0;if(RI==1)           //接受一字节完成后由硬件置1{RI = 0;          //软件清零,防止下次未接收完成就执行程序Recive_table[i] = SBUF; //将接受数据存入数组if(Recive_table[0]=='+')     //说明一下,发送的数据都是这样的字符串  +IPD,0,1:1    i++;elsei = 0;if(i>=10){if((Recive_table[0]=='+')&&(Recive_table[1]=='I')&&(Recive_table[2]=='P')&&(Recive_table[3]=='D')){if(Recive_table[9]=='a')//输入a开灯LED=1;if(Recive_table[9]=='b')//输入b关灯LED=0;}i = 0;  //完成一次操作的判断就要清0,如果不清零 就无法实现后续的判断}}elseTI = 0;     //不是接收中断就是发送中断,也需要手动软件置0
}

4..其他的步骤就和不多说了一样的

要是连不上重启一下最小系统多试试

个人的疑惑

疑问1:

我连接的时候,经常在所有的东西都配置好后,给ESP8266,和最小系统同时上电,发现挺大概率,手机的TCP调试软件会连接不上端口;经过很多次尝试,我是这样子解决的:ESP8266保持不断电,但给51最小系统部分重新上电(即重启),这样子后手机端的TCP就连的上了。

后来想了想发现,会不会是因为最小系统和ESP8266同时上电的时候,程序中的这两句命令没有正常写入esp8266,导致ESP8266初始化失败

而重启51最小系统,单片机重新运行,就相当于把这两条命令再一次写入给已经上电的ESP8266,所以手机端的TCP就可以连接上了。这是我的猜测,可能不太正确。作为一个刚刚小白,踩了好的的坑,连接这个ESP8266都折腾了好几天才成功。懂的兄弟们可以讲讲这个问题吗?

疑问2:当我的程序中有多个中断的时候,是否应该将这个串口中断设置最高的优先级

(实际上我也是这么做的,因为我发现,当我把这个模块移植到其他程序中时,如果不设置优先级,手机的经常性的连不上ESP8266,设置完PS=1,给这个串口中断最高优先后,可以连上了)

上述两个疑惑,小白恳求大佬们指导一下

我踩的坑:

  1. 连接的时候一定要关闭手机的数据网络,否者连接不上,我也不知道为啥
  2. 关于电源和地,最小系统和esp8266一定要共地!!否者可能连接不上

PS:小白第一次发帖,上述可能会有些错误的地方,希望大家见谅

第一次使用ESP8266_01S相关推荐

  1. svn 第一次使用注意事项

    可以到官网上下载 一个小乌龟的工具 下载地址连接 下载 安装之后 鼠标右键可以看到如下 第一次使用需要先添加svn的地址 ,如果直接checkout 是不可能拉下内容的 点击TortoiseSVN 然 ...

  2. 猫猫学iOS 之第一次打开Xcode_git配置,git简单学习

    猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 一:错误 当第一次打开Xcode我们进行commit操作的时候会 ...

  3. Android studio第一次使用配置(三)gradle项目构建

    1.gradle的概念 2.gradle配置jar包.和libs目录导入jar包的差别 3.签名打包: (1)Studio (2)命令行 (3)gradle wrapper的原理 4.BuildCon ...

  4. 第一次使用cookie

    给招行做的一个小游戏,有个需求是:分数第一次达到500会弹出一个提示框.之前没有使用过cookie,在网上搜了些资料,最终还是顺利实现了功能.在这里贴一下代码. <%! //初始化cookie ...

  5. 【Qt】新安装的虚拟机,使用QtCreator第一次编译时报错:g++: Command not found

    1.问题描述 新安装的虚拟机,使用QtCreator第一次编译时报错:g++: Command not found (或着报,make执行失败之类的错误) 2.原因分析 新安装的虚拟机中,没有g++. ...

  6. jquery click 第一次没用_【通知】同济大学研究生会20202021学年第一次主席联席会...

    为加强同济大学研究生会与各学院(系)研究生会的交流与合作,促进学校研究生工作的顺利开展,特邀请各院(系.所)研会主席参加本学年第一次主席联席会. 同济大学研究生会 2020-2021 学年 第一次主席 ...

  7. Git——如何将本地项目提交至远程仓库(第一次)

    1.(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库. git init 2.把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数 ...

  8. 记录第一次在egret项目中使用Puremvc

    这几天跟着另一个前端在做一个小游戏,使用的是egret引擎和puremvc框架,这对于我来说还是个比较大的突破吧,特此记录下. 因为在此项目中真是的用到了mvc及面向对象编程,值得学习 记录第一次在e ...

  9. 第一次使用51cto博客

    阿梅第一次使用51cto博客,以后将学习中的总结写到这里来.加油. 转载于:https://blog.51cto.com/hopit/1690465

最新文章

  1. button和sumbit提交表单的区别
  2. 将Doc或者Docx文档处理成html的代码逻辑;统计word中的字数,段数,句数,读取word中文档内容的代码逻辑
  3. 一个备份MySQL数据库的简单Shell脚本(转)
  4. Spark启动程序:Master
  5. 第 1-4 课:Java 中的运算符和流程控制 + 面试题
  6. 使用QP方法解基于五次多项式形式的cost function minimization问题
  7. 互联网分层架构的本质
  8. mysql 的命令行操作
  9. oracle toad 价格,Toad for oracle 软件产品模块对比,方便大家选型。
  10. Oracle-select...into...from语句的使用
  11. python太阳花画法_Python——教你画朵太阳花
  12. 处理不连续单元格,如sum,sumif,countif
  13. 矩阵的求逆:inv( )
  14. R-loop数据分析之R-ChIP(样本间BAM比较和可视化)
  15. c++如何制作背景音乐
  16. 松下php研究所,松下幸之助实践经营哲学10-2
  17. F. Asya And Kittens
  18. ElasticSearch学习2_Java version:1.7.0_51 suffers from critical bug及ES对JDK版本要求
  19. pdf 加深 扫描件_福昕PDF如何用更高的DPI将文档扫描成PDF
  20. 批量删除QQ空间日志

热门文章

  1. Android 存储选择
  2. 倾城北栀:4.30日晚间行情分析以及操作策略
  3. 手机短信接收验证码的实现原理
  4. php 英文单词 数,php实现单词统计功能
  5. ✿2021NEWCTF6.1萌新赛✿MISC-all-WP
  6. 重庆市涪陵创新计算机学校图片,重庆市涪陵创新计算机学校寝室图片、学校环境好吗...
  7. 自定义组件使用el-dialog,且内含表单时,表单提交时字段报错undefined
  8. 第五章 组合逻辑电路设计
  9. java outputstream 输入文件损坏问题
  10. LeetCode题目:1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?