找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1325|回复: 2
打印 上一主题 下一主题
收起左侧

单片机控制ESP8266的代码问题

[复制链接]
回帖奖励 4 黑币 回复本帖可获得 4 黑币奖励! 每人限 1 次
跳转到指定楼层
楼主
ID:403916 发表于 2018-11-16 21:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
正在学ESP8266或者已经会了的坛友们,想请问这个代码有问题吗?
模块和单片机连接没有什么问题,但是执行代码后,给ESP发送1,LED只会闪烁一下,添加了延时也这样,而且也收不到ESP发送的打开和关闭,是什么原因呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:403916 发表于 2018-11-16 21:13 | 只看该作者
发错了代码,这个才是
  1. #include<reg52.h>
  2. #include<intrins.h>       
  3. #define uchar unsigned char
  4. #define uint unsigned int   
  5. sbit led=P1^0;
  6. uchar Receive,i;                             
  7. uint n;
  8. uchar Recive_table[15];  
  9. void ms_delay(uint t)
  10. {
  11.       uint i,j;
  12.       for(i=t;i>0;i--)
  13.        for(j=110;j>0;j--);
  14. }

  15. void us_delay(uchar t)
  16. {
  17.       while(t--);
  18. }


  19. void Uart_Init()
  20. {
  21.       SCON=0x50;     
  22.       PCON=0x00;     
  23.       TMOD=0x21;   
  24.       TH1=0xfd;
  25.       TL1=0xfd;
  26.       EA=1;                           
  27.       ES=1;                             
  28.       TR1=1;   
  29. }

  30. void Send_Uart(uchar value)
  31. {
  32.       ES=0;         
  33.       TI=0;         
  34.       SBUF=value;     
  35.       while(TI==0);   
  36.       TI=0;         
  37.       ES=1;         
  38. }

  39. void ESP8266_Set(uchar *puf)               
  40. {

  41.       while(*puf!='\0')   
  42.       {
  43.            Send_Uart(*puf);  
  44.            us_delay(5);
  45.            puf++;      
  46.       }
  47.       us_delay(5);
  48.       Send_Uart('\r');
  49.       us_delay(5);
  50.       Send_Uart('\n');   
  51.       
  52. }   

  53. void ESP8266_Sent(uchar *puf)                  
  54. {
  55.       ESP8266_Set("AT+CIPSEND=0,2");
  56.       while(*puf!='\0')   
  57.       {
  58.            Send_Uart(*puf);   
  59.            us_delay(5);
  60.            puf++;      
  61.       }
  62.       us_delay(5);
  63.       Send_Uart('\n');   
  64.       ms_delay(10);
  65. }   


  66. void main()
  67. {       
  68.             Uart_Init();
  69.                         ms_delay(500);
  70.                         led=0;
  71.                   ESP8266_Set("AT+CWMODE=2");
  72.                         ms_delay(500);
  73.                         ESP8266_Set("AT+CIOBAUD=9600");
  74.                         ms_delay(500);
  75.                         ESP8266_Set("AT+CWSAP=\"hello\",\"12345678\",1,3");
  76.                         ms_delay(500);
  77.                         ESP8266_Set("AT+CIPMUX=1");
  78.                         ms_delay(500);
  79.       ESP8266_Set("AT+CIPSERVER=1,8000");
  80.                         ms_delay(500);
  81.                         ESP8266_Set("AT+CIPSTO=0");
  82.                         ES=1;
  83.          while(1)
  84.          {       
  85.                 if((Recive_table[0]=='+')&&(Recive_table[1]=='I')&&(Recive_table[2]=='P'))
  86.             {
  87.                 if((Recive_table[3]=='D')&&(Recive_table[6]==','))
  88.                      {   
  89.                            if(Recive_table[9]=='0')
  90.                             {
  91.                                                                                                                          led=0;
  92.                                                                                                                        
  93.                                                                                                                         ESP8266_Sent("OFF");
  94.                             }

  95.                            else if(Recive_table[9]=='1')
  96.                             {                                
  97.                                                                                                                          led=1;
  98.                                                                                                                         ESP8266_Sent("ON");                 
  99.                                                                                                                 }
  100.                      }   
  101.                                          }      
  102.     }         
  103. }

  104. void Uart_Interrupt() interrupt 4         
  105. {   
  106.         static uchar i=0;  
  107.         if(RI==1)  
  108.         {   
  109.                 RI=0;   
  110.                 Receive=SBUF;                                                       
  111.                 Recive_table[i]=Receive;   
  112.                 if((Recive_table[i]=='\n'))
  113.                 {                     
  114.                         i=0;
  115.                 }   
  116.                 else i++;                                                                         
  117.         }   
  118.         else TI=0;   
  119. }  

复制代码
回复

使用道具 举报

板凳
ID:303383 发表于 2018-11-16 22:15 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表