这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 物联网技术 » ESP8266WIFI模块无法接收到单片机的指令,WHY?

共1条 1/1 1 跳转至

ESP8266WIFI模块无法接收到单片机的指令,WHY?

工程师
2021-03-30 23:22:12     打赏
想问一下,单片机可以与电脑串口通信,ESP8266也能与电脑串口通信并发送AT指令控制,但ESP8266接收不到来自单片机的AT指令是什么原因我用的是51开发板,WIFI模块是ESP-01S,因为开发板电源接口不够所以用开发板给电源模块供电再用ESP8266连接电源模块
ESP8266的VCC和EN接电源模块的3V3,GND接电源模块的GND
ESP8266的TX、RX分别连接了单片机的P31(RX)、P30(TX)
不知道怎么上传图片,我就直接复制串口助手的信息了

(省略乱码)

Ai-Thinker Technology Co. Ltd.

ready
AT+CWMODE=2
AT+CIPMUX=1
AT+CIPSERVER=1,8080

发送AT+CIPMUX?后显示
AT+CIPMUX?

+CIPMUX:0

OK


下面是我找的例程:

#include<reg52.h>                                //51单片机常用的头文件

#define uchar unsigned char                //宏定义一个无符号的char类型

#define uint unsigned int                //宏定义一个无符号的int类型


//发送一字节

void sendByte(uchar b)

{

  SBUF = b;

  while(!TI);

  TI=0;

}


//发送字符串

void sendString(uchar *s)

{

  while(*s != '\0')        //字符串默认结尾'\0',以此来判断字符串的结束

  {

    sendByte(*s);

    s++;

  }

}


//初始化ESP8266WiFi模块

void initEsp()

{

  uint a;

  SCON = 0x50;    //8位数据,可变波特率

  TMOD = 0x20;    //设置定时器1位16位自动重装模式

  TL1 = 0xfd;     //设置定时器初值,波特率为9600

  TH1 = 0xfd;

  ET1 = 0;        //禁止定时器1中断

  TR1 = 1;        //启动定时器1

  EA = 1;


  for (a=0; a<50000; a++);                //延时几秒,让模块有时间启动

  sendString("AT+CWMODE=2\r\n");        //设置为softAP和station共存模式


  //WiFi热点不能通过代码设置,可使用串口助手进行设置,该设置断电不丢失

  /*

  for (a=0; a<20000; a++);

  sendString("AT+CWSAP='TEST','12345678',1,3\n"); //建立WiFi热点

  */


  for (a=0; a<50000; a++);    

  sendString("AT+CIPMUX=1\r\n"); //启动多连接


  for (a=0; a<20000; a++);

  sendString("AT+CIPSERVER=1,8080\r\n");//建立server,端口为333




  RI=0;

  ES=1;   //初始化完成,串行口中断打开

}


//主函数  

void  main()  

{  

  initEsp();

}  





关键词: wifi模块     ESP8266    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]