OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4453|回复: 4

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

[复制链接]

7

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
158
金钱
158
注册时间
2017-2-23
在线时间
24 小时
发表于 2017-3-6 17:24:59 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 li516912066 于 2017-3-6 20:13 编辑

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

求大神赐教!!!!!!!

#include <reg52.h>
#include <string.h>
#include <stdio.h>

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

void ms_delay(int t)
{  
        int i,j;
         for(i=t;i>0;i--)   
                for(j=110;j>0;j--);
}

void us_delay(char t)
{  
        while(t--);
}

void LED(void)
{
                P1 = 0;
                ms_delay(100);
                P1 = 0xff;
                ms_delay(100);

}

void WIFI_Init(void)
{
        TI = 1;        
        //ESP8266_Set("AT+RST");
        printf("AT+RST\r\n");
        LED();
        ms_delay(1000) ;
        //ESP8266_Set("AT+CWMODE=3");
        printf("AT+CWMODE=3\r\n");
        LED();
        ms_delay(1000) ;
        //ESP8266_Set("AT+CIPMUX=1");
        printf("AT+CIPMUX=1\r\n");
        LED();
        ms_delay(1000) ;
        //ESP8266_Set("AT+CIPSERVER=1,8080");
        printf("AT+CIPSERVER=1,8080\r\n");
        LED();
        ms_delay(1000) ;
        while(!TI);
        TI = 0;
        ES = 1;
}

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

void ESP8266_Set(char *puf) // 数组指针*puf指向字符串数组               
{   
        while(*puf!='\0')    //遇到空格跳出循环  
        {   
                Send_Uart(*puf);  //向WIFI模块发送控制指令。  
                 us_delay(5);  
                 puf++;   
         }  
        us_delay(5);  
        Send_Uart('\r'); //回车
         us_delay(5);
         Send_Uart('\n');   //换行  
        ms_delay(1000);
}


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


int main (void)
{        
        int num = 0;
         Uart_Init();
        ms_delay(1000) ;
    WIFI_Init();
        
        while(1)
        {               
                if(Recive_state == 1)
                {
                        ES=0;  //鍏抽棴涓插彛涓?柇        
//                        while(Recive_table[num] != '\0')  
//                        {
//                                TI=0;   //娓呭彂閫佸畬姣曚腑鏂??姹傛爣蹇椾綅   
//                                SBUF=Recive_table[num]; //鍙戦
//                                  while(TI==0); //绛夊緟鍙戦

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2017-3-6 18:25:05 | 显示全部楼层
回复

使用道具 举报

7

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
158
金钱
158
注册时间
2017-2-23
在线时间
24 小时
 楼主| 发表于 2017-3-6 20:16:02 | 显示全部楼层
程序后面是好使的,就是WIFI_Init()有问题
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2017-3-21
在线时间
2 小时
发表于 2017-3-21 22:19:16 | 显示全部楼层
本帖最后由 Ysir 于 2017-3-21 22:24 编辑

试试字符串后面加回车一样?
回复

使用道具 举报

7

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
158
金钱
158
注册时间
2017-2-23
在线时间
24 小时
 楼主| 发表于 2017-3-22 08:49:10 | 显示全部楼层
Ysir 发表于 2017-3-21 22:19
试试字符串后面加回车一样?

什么一样?
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 05:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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