找回密码
 立即注册

QQ登录

只需一步,快速开始

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

esp8266无线通信

[复制链接]
跳转到指定楼层
楼主
ID:394949 发表于 2019-6-16 20:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
源代码:
#include<reg52.h>
#include<stdio.h>
#include<string.h>
#define uchar unsigned char
#define uint unsigned int
sbit led=P1^0;
sbit led1=P2^0;
sbit led2=P2^1;
sbit key=P2^2;
uchar Rxbuff[40],Rxnum=0,Recive_state=0;
void Init()//110592MH
{
    TMOD=0x20;
    TH1=0xfD;
    TL1=0xfD;
    TR1=1;
    REN=1;
    SM0=0;
    SM1=1;
    EA=1;
    ES=1;
}
void delay(uchar t)
{
    uchar i,j;
    for(i=t;i>0;i--)
        for(j=135;j>0;j--);
}

//UART 发送一字节
void UART_send_byte(char dat)
{
    ES=0;
    SBUF = dat;                    //发送
    while (TI == 0);            //等待发送完毕
    TI = 0;                        //清发送完毕中断请求标志位
    ES=1;
}

/// UART 发送字符串
void Send_Str(unsigned char *buf)
{
    while (*buf != '\0')
    {
        UART_send_byte(*buf++);
    }
}

void TCP_Send(uchar *dat,uchar *p)
{
    while(1)
    {
        Send_Str(dat);
        delay(1000);
        delay(1000);
        delay(1000);
        if(Recive_state == 1)
        {
            if(strstr(Rxbuff,p))
            {
                memset(Rxbuff,'\0',40);//清空数组
                Recive_state=0;
                break;
            }
        }
    }
}
void LED()
{
    led=0;
    delay(1000);
    delay(1000);
    led=1;
    delay(1000);
    delay(1000);
}

void wifi_init()
{
    TCP_Send("AT\r\n","OK");
    delay(1000);
    LED();
    TCP_Send("AT+CWMODE=1\r\n","OK");
    delay(1000);
    LED();
    Send_Str("AT+RST");
    LED();
    TCP_Send("AT+CWJAP=\"001\",\"1234567890\"\r\n","OK");
    delay(1000);
    delay(1000);
    delay(1000);
    delay(1000);
    LED();
    TCP_Send("AT+CIPSTART=\"TCP\",\"192.168.4.3\",8080\r\n","OK");
    delay(1000);
    delay(1000);
    LED();
}

void main()
{
    led1=1;
    led2=1;  
    Init();//串口初始化
    delay(1000);
    wifi_init();//wifi初始化
    delay(1000);
    while(1)
    {
        if(key==0)
        {
            delay(1000);
            if(key==0)
            {   
                //ES=0;
                led1=0;
                Send_Str("AT+CIPSEND=3\r\n");
                delay(100) ;
                Send_Str("123\n");
                delay(100) ;
                led1=1;
                //ES=1;
            }
        }
        if(Recive_state == 1)
        {
            ES=0;  //清空接收标志位
            //led1=~led1;
            //led2=~led2;
            if((Rxbuff[0]=='+')&&(Rxbuff[1]=='I')&&(Rxbuff[2]=='P'))//接收到的字符串形式为+IPD,x:y
            {
               if((Rxbuff[3]=='D')&&(Rxbuff[4]==','))
               {   
                  if(Rxbuff[7]=='0')
                     led2 = 0;
                  if(Rxbuff[7]=='1')
                     led2 = 1;
               }
            }
             memset(Rxbuff,'\0',40);//清空数组
            Recive_state = 0;
            ES=1;  //打开接收标志位
        }
    }
}

//*****************串口接收中断函数,接收数据*********************
void UARTInterrupt(void) interrupt 4
{   
    if(RI==1)   
    {  
        ES = 0;
        RI=0;         
        Rxbuff[Rxnum]=SBUF;        
        Rxnum++;
         
        if((Rxbuff[Rxnum-1] == '\n'))
        {
            Rxbuff[Rxnum]='\0';
            Rxnum=0;
            Recive_state = 1;
        }
        else if(Rxnum>40)
            Rxnum=0;
        ES = 1;      
    }      
}
  

客户端(完成).rar

29.39 KB, 下载次数: 10, 下载积分: 黑币 -5

项目源代码—客户端

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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