找回密码
 立即注册

QQ登录

只需一步,快速开始

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

esp8266+c51编程问题,在WIFI_Init()里面用printf就好使,用自己写的ESP8266_Set()...

[复制链接]
跳转到指定楼层
楼主
ID:168668 发表于 2017-3-6 21:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
esp8266+c51编程问题,在WIFI_Init()里面用printf就好使,用自己写的ESP8266_Set()就不好使
求大神赐教!!!!!!!




  1. #include <reg52.h>
  2. #include <string.h>
  3. #include <stdio.h>

  4. char Recive_table[20]="";  //鐢ㄤ簬鎺ユ敹wifi妯″潡鍙嶉鍒癕CU涓婄殑鏁版嵁
  5. char Recive_state = 0;

  6. void ms_delay(int t)
  7. {  
  8.         int i,j;
  9.          for(i=t;i>0;i--)   
  10.                 for(j=110;j>0;j--);
  11. }

  12. void us_delay(char t)
  13. {  
  14.         while(t--);
  15. }

  16. void LED(void)
  17. {
  18.                 P1 = 0;
  19.                 ms_delay(100);
  20.                 P1 = 0xff;
  21.                 ms_delay(100);

  22. }

  23. void WIFI_Init(void)
  24. {
  25.         TI = 1;        
  26.         //ESP8266_Set("AT+RST");
  27.         printf("AT+RST\r\n");
  28.         LED();
  29.         ms_delay(1000) ;
  30.         //ESP8266_Set("AT+CWMODE=3");
  31.         printf("AT+CWMODE=3\r\n");
  32.         LED();
  33.         ms_delay(1000) ;
  34.         //ESP8266_Set("AT+CIPMUX=1");
  35.         printf("AT+CIPMUX=1\r\n");
  36.         LED();
  37.         ms_delay(1000) ;
  38.         //ESP8266_Set("AT+CIPSERVER=1,8080");
  39.         printf("AT+CIPSERVER=1,8080\r\n");
  40.         LED();
  41.         ms_delay(1000) ;
  42.         while(!TI);
  43.         TI = 0;
  44.         ES = 1;
  45. }

  46. void Send_Uart(char value)
  47. {  
  48.         ES=0;  //关闭串口中断  
  49.         TI=0;   //清发送完毕中断请求标志位   
  50.         SBUF=value; //发送
  51.          while(TI==0); //等待发送完毕   TI=0;   //清发送完毕中断请求标志位   
  52.         ES=1;  //允许串口中断  
  53. }

  54. void ESP8266_Set(char *puf) // 数组指针*puf指向字符串数组               
  55. {   
  56.         while(*puf!='\0')    //遇到空格跳出循环  
  57.         {   
  58.                 Send_Uart(*puf);  //向WIFI模块发送控制指令。  
  59.                  us_delay(5);  
  60.                  puf++;   
  61.          }  
  62.         us_delay(5);  
  63.         Send_Uart('\r'); //回车
  64.          us_delay(5);
  65.          Send_Uart('\n');   //换行  
  66.         ms_delay(1000);
  67. }


  68. void Uart_Init(void)//浣跨敤瀹氭椂鍣?浣滀负娉㈢壒鐜囧彂鐢熷櫒
  69. {  
  70.         TMOD=0x20;//设置定时器1为工作方式2
  71.         TH1=0xfd;
  72.         TL1=0xfd;
  73.         TR1=1;
  74.         REN=1;
  75.         SM0=0;
  76.         SM1=1;
  77.         EA=1;
  78.         ES=0;
  79. }


  80. int main (void)
  81. {        
  82.         int num = 0;
  83.          Uart_Init();
  84.         ms_delay(1000) ;
  85.     WIFI_Init();
  86.         
  87.         while(1)
  88.         {               
  89.                 if(Recive_state == 1)
  90.                 {
  91.                         ES=0;  //鍏抽棴涓插彛涓柇        
  92. //                        while(Recive_table[num] != '\0')  
  93. //                        {
  94. //                                TI=0;   //娓呭彂閫佸畬姣曚腑鏂姹傛爣蹇椾綅   
  95. //                                SBUF=Recive_table[num]; //鍙戦[/i][i]//                                  while(TI==0); //绛夊緟鍙戦[/i]
  96. [backcolor=rgb(232, 232, 232)][size=15px][color=#000000][i]//                                while(TI==0); //等待发送完毕   
  97. //                                TI=0;   //清发送完毕中断请求标志位
  98. //                                num++;
  99. //                        }
  100. //                        num = 0;
  101. //                        memset(Recive_table,'\0',20);
  102.                         LED();
  103.                         Recive_state = 0;
  104.                         ES=1;  //允许串口中断
  105.                 }
  106.         }
  107. }

  108. void Uart_Interrupt() interrupt 4         
  109. {   
  110.         static char i=0;
  111.         if(RI==1)  
  112.         {  
  113.                 RI=0;         
  114.                 Recive_table[i]=SBUF;        
  115.                 i++;
  116.                 if((Recive_table[i-1]=='\n'))
  117.                 {
  118.                         i=0;
  119.                         Recive_state = 1;
  120.                 }
  121.                               
  122.         }
  123.         else
  124.                 TI = 0;     
  125. }
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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