标题: esp8266与STC89C52单片机的通信测试出现问题(新手菜鸟求助) [打印本页]

作者: melody222    时间: 2024-5-8 01:29
标题: esp8266与STC89C52单片机的通信测试出现问题(新手菜鸟求助)
  用的是keil5编写程序,烧录完hex文件之后。发现在串口调试助手上wifi模块可以正常使用接收信息(我设置的是ap模式),但是连接到单片机通电后,就只能连接网络,手机app无法输入ip地址和端口号来连接wifi模块,求助我的代码为什么不能成功让单片机配置
#include <REGX52.H>

#define uint unsigned int
#define uchar unsigned char


uchar Recive_table[15];
         
uint i;
void delay_ms(uint ms)
{
        uchar i,j;
        for(i=ms;i>0;i--)
        for(j=120;j>0;j--);
}

void delay_us(uchar us)
{
        while(us--);
}

void Usart_Init()
{
        
        SCON=0x50;
        TMOD=0x20;
        
        TH1=0xFD;
        TL1=TH1;
        
        PCON=0;
        ET1=0;
        TR1=0;
        ES=1;
        EA=1;
}

void SENT_At(uchar *At_Comd)
{
        ES=0;
        while(*At_Comd!='\0')
        {
                SBUF = *At_Comd;
                while(!TI);
                TI = 0;
                delay_us(5);
                At_Comd++;
        }
        ES=1;
}

void WIFI_Init()
{
        SENT_At("AT+CIPMUX=1\r\n");
        delay_ms(1000);
        SENT_At("AT+CIPSERVER=1,8080\r\n");
        delay_ms(1000);
        ES = 1;
}
void main()
{
        Usart_Init();
        WIFI_Init();
        delay_ms(450);
        while(1);
}
void Uart() interrupt 4
{        
        
        if(RI==1)
        {
                RI=0;
                Recive_table[ i]=SBUF;
                if(Recive_table[0]=='+')
                {
                  i++;
                }
                else
                {
                        i=0;
                }
                if(i>=10)
                {
                        if((Recive_table[0]=='+')&&(Recive_table[1]=='I')&&(Recive_table[2]=='P')&&(Recive_table[3]=='D'))
                        {
                                if(Recive_table[9]=='0')
                                {
                                        P2 = 0x81;
                                }         
                                if(Recive_table[9]=='1')
                                {
                                        P2 = 0x00;
                                }
                                
                                                
                        }
                        i = 0;
                }
        }
        else
   TI = 0;               
}



作者: lkc8210    时间: 2024-5-8 09:20
试试一下代码
  1. #include <REGX52.H>

  2. void main()
  3. {
  4.         while(1);
  5. }
复制代码




作者: melody222    时间: 2024-5-8 09:48
lkc8210 发表于 2024-5-8 09:20
试试一下代码

请问大佬,这个不是执行空的循环吗
作者: iamluckman    时间: 2024-5-8 14:26
不要用8080端口
作者: lkc8210    时间: 2024-5-8 15:51
melody222 发表于 2024-5-8 09:48
请问大佬,这个不是执行空的循环吗


如果跑空循环也影响ESP8266
就不是代码问题
作者: melody222    时间: 2024-5-9 23:04
lkc8210 发表于 2024-5-8 15:51

如果跑空循环也影响ESP8266
就不是代码问题

空循环没影响,我正常选择一个引脚输出高电平都可以让单片机点亮led灯
作者: melody222    时间: 2024-5-9 23:05
iamluckman 发表于 2024-5-8 14:26
不要用8080端口

麻烦问一下是随便换个端口吗,8080端口有什么影响
作者: 风158    时间: 2024-5-9 23:34
2楼在启发你,while(1);//这是个死循环。
作者: 单片机初学者174    时间: 2024-5-13 00:48
延时给长点。还有程序中没有检测At指令究竟有没有发送成功。程序中WIFI_Init()里的内容太简单,根本就启动不了模块。
作者: melody222    时间: 2024-5-19 21:25
单片机初学者174 发表于 2024-5-13 00:48
延时给长点。还有程序中没有检测At指令究竟有没有发送成功。程序中WIFI_Init()里的内容太简单,根本就启动 ...

好嘞 我试试
作者: 人中狼    时间: 2024-5-20 21:54
      else
   TI = 0;     这个去掉吧
作者: melody222    时间: 2024-6-3 22:38
单片机初学者174 发表于 2024-5-13 00:48
延时给长点。还有程序中没有检测At指令究竟有没有发送成功。程序中WIFI_Init()里的内容太简单,根本就启动 ...

试了没有用,求大佬指点配置AT指令那块应该怎么写
作者: melody222    时间: 2024-6-3 22:42
人中狼 发表于 2024-5-20 21:54
else
   TI = 0;     这个去掉吧

去掉了之后没用,是怎么样都配置不成功sp8266




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1