標(biāo)題: 關(guān)于51單片機(jī)和ESP8266的通信問(wèn)題(只能發(fā)送AT,就沒(méi)有后面了) [打印本頁(yè)]

作者: sczust    時(shí)間: 2018-10-30 18:47
標(biāo)題: 關(guān)于51單片機(jī)和ESP8266的通信問(wèn)題(只能發(fā)送AT,就沒(méi)有后面了)
用51單片機(jī)和esp8266相連接, r/t連接正確。想實(shí)現(xiàn)通過(guò)單片機(jī)向esp8266發(fā)送指令設(shè)置成客戶端,發(fā)送數(shù)據(jù)給連接到此WiFi的另一臺(tái)服務(wù)器。
燒錄程序只能發(fā)送AT,就沒(méi)有后面了。程序如下,希望大神們幫我看看
  1. #include<reg52.h>
  2. #include <stdio.h>
  3. #include <intrins.h>              
  4. #include <string.h>
  5. #define Buf_Max 10
  6. unsigned char i=0;
  7. unsigned char j=0;
  8. unsigned char idata Rec_Buf[10];
  9. bit  Hand(unsigned char *a);
  10. char code str1[]="AT\r\n";
  11. char code str2[]="AT+CWMODE=2\r\n";                                
  12. char code str3[]="AT+RST\r\n";                  
  13. char code str4[]="AT+CIPMUX=0\r\n";                                    
  14. char code str5[]="AT+CIPSTART=\"TCP\",\"192.168.4.2\",8234\r\n";   
  15. char code str6[]="AT+CIPSEND=6\r\n";               
  16. char code str7[]="hello!\r\n";


  17. void CLR_Buf(void)
  18. {
  19. unsigned char k;
  20.     for(k=0;k<Buf_Max;k++)   
  21.      {
  22.    Rec_Buf[k] = 0;
  23.   }
  24.     //i = 0;                    
  25. }


  26. bit Hand(unsigned char *a)
  27. {  
  28.     if(strstr(Rec_Buf,a)!=NULL)
  29.      return 1;
  30. else
  31.   return 0;
  32. }


  33. void Delays(void)        //Delay500ms
  34. {
  35. unsigned char i,j,k;
  36. for(k=0;k<2;k++){
  37. for(i=0;i<255;i++)
  38. for(j=0;j<255;j++);
  39. for(i=0;i<255;i++)
  40. for(j=0;j<255;j++);
  41. for(i=0;i<255;i++)
  42. for(j=0;j<140;j++);
  43. }
  44. }

  45. void UARTInit(void)
  46. {
  47. SCON =0x50;
  48. T2CON=0x34;
  49. RCAP2L=0xD9;
  50. RCAP2H=0xFF;   //波特率9600
  51. //TR1=1;
  52. EA=1;
  53. //ES=1;
  54. }

  55. void UARTSendByte(unsigned char byte)
  56. {
  57. SBUF=byte;                 
  58. while(TI==0);              
  59. TI=0;                    
  60. }

  61. void UARTSendString(unsigned char *string)
  62. {
  63.    while(*string)
  64.     { UARTSendByte(*string++);  }
  65. }

  66. void ESP8266()
  67. {

  68. UARTSendString(str1);   
  69. while(!Hand("OK"));                          
  70.   CLR_Buf();
  71. Delays();
  72. UARTSendString(str2);   
  73. while(!(Hand("OK")))        
  74. {                        
  75. Delays();
  76. Delays();
  77. }
  78. CLR_Buf();

  79. UARTSendString(str3);      //RST
  80. while(!Hand("OK"))                           
  81. {                 
  82. Delays();
  83. Delays();
  84. }
  85. CLR_Buf();

  86. UARTSendString(str4);                                
  87. while(!Hand("OK"))                           
  88. {      
  89. Delays();
  90. Delays();
  91. }
  92. CLR_Buf();

  93. UARTSendString(str5);                     
  94.     while(!Hand("OK"))                          
  95. {        
  96. Delays();
  97. Delays();
  98. }
  99. CLR_Buf();
  100. UARTSendString(str6);     
  101. while(!Hand("ready"))                        
  102. {                          
  103. Delays();
  104. Delays();
  105. }
  106. CLR_Buf();
  107.     while(!Hand(">")){
  108. UARTSendString(str7);                        
  109. Delays();
  110. Delays();
  111.    }
  112. }  

  113. void main(void)
  114. {
  115. UARTInit();
  116. while(1)
  117. {
  118. Delays();
  119. Delays();
  120. ESP8266();
  121. Delays();
  122. }
  123. }

  124. void UARTInterrupt(void) interrupt 4
  125. {
  126.   ES = 0;
  127. if (RI)
  128.     {
  129.         RI = 0;               
  130.       Rec_Buf[j] = SBUF;
  131.   //SBUF=Rec_Buf[j];
  132.      j++;               
  133.   if(j>Buf_Max)         
  134.   {
  135.   j = 0;
  136.   }           
  137.     }
  138.     if (TI)
  139.     {
  140.       TI = 0;               
  141.     }
  142. ES =  1;
  143. }
復(fù)制代碼


作者: 小貓貓愛(ài)吃魚(yú)    時(shí)間: 2018-10-31 09:50
有可能出現(xiàn)的問(wèn)題
1、服務(wù)器配置錯(cuò)誤
2、IP地址不對(duì),要在同一網(wǎng)段內(nèi)
3、沒(méi)有正確實(shí)現(xiàn)服務(wù)器連接
4、還有其他未知因素
5、可以加我好友,說(shuō)明一下具體實(shí)現(xiàn)功能要求,幫你設(shè)計(jì)




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1