完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
ESP8266有三种模式:STA,AP,AP+STA 通过单片机的串口将ESP8266EX模块设置AP模式,然后通过手机网络调试助手(连接上ESP8266)发送数据,单片机收到以后,处理数据,并点灯 举例:AP模式 注意事项: 1,ESP8266与单片机串口连接,即交叉连线:RX-TX TX-RX 2,ESP8266与单片机的波特率设置为一样 注意:单片机串口(实际中晶振11.0592M or 12M)波特率不能设置为115200 需要通过AT指令将ESP8266的波特重新设置(一般设置为9600),单片机串口波特率也设置为9600 3,程序中,单片机发送的数据要有换行符 4,单片机下载程序的时候,需要将ESP8266断开,(简单方法:就是ESP8266的电源线拔掉或拔掉串口的某根线) 5,注意观察ESP8266的指示灯,(蓝色灯会闪烁) 6,手机网络调试助手 协议类型:TCP client 服务器IP地址:192.168.4.1 服务器端口:8080 7,ESP8266的数据处理,收到数据格式:+IPD,X,X:有效数据 8,ESP8266接收的数字是数字ASCII码,需要处理数字时,需要将接收的数据-0x30,即减去该0的ASCII码 一般情况: ESP8266:正常模式(运行模式)115200 单片机串口波特率:9600 因此需要使用AT指令将ES8266的波特率重新设置,设置视频教程: 设置ESP8266的波特率 详细的视频教程及演示: /* *作者:逗比小憨憨 *说明:程序只是基础使用单片机+ESP8266EX,还可以进一步扩展使用 *程序中ESP8266模式设置为AP模式,设置其它模式所需的AT指令,即单片机串口需要发送的字符串 *可以看这里面相关ESP8266的讲解,链接:https://space.bilibili.com/314404732 */ #include unsigned char code str[][30]={ {"AT+CWMODE=2rn"}, {"AT+RSTrn"}, {"AT+CWSAP="},//这条指令用法参照AT指令用户手册 {"AT+CIPMUX=1rn"}, {"AT+CIPSERVER=1,8080rn"}, {"AT+CIPSEND=0,10"} }; unsigned char dat[10],cnt=0,flag=66; //函数声明区 void delay_ms(unsigned int i); void init(void); void send_char(unsigned char d); void send_str(unsigned char *str); / void delay_ms(unsigned int i) { unsigned int j,k; for(j=i;j>0;j--) for(k=118;k>0;k--); } void init(void) //串口初始化 { TMOD=0x20; //定时器1工作在模式2,自动重装模式 SCON=0x50; //串口工作在模式1 TH1=0xfd; //计算定时器重装值 //11.0592 9600 TL1=0xfd; PCON=0x00; //串口波特率加倍 ES=0; //串行中断关闭 TR1=1; //启动定时器1 REN=1; //允许接收 EA=1; //允许中断 } void send_char(unsigned char d) //发送一个字节的数据 { SBUF=d; //将数据写入到串口缓冲 while(!TI); //等待发送完毕 TI=0; RI=0; } void send_str(unsigned char *str) { while(*str!=' |