单片机交流
直播中

甘满盛

7年用户 1297经验值
擅长:386660
私信 关注
[问答]

MCU向无线WIFI模块ESP8266如何发送数据?

MCU向无线WIFI模块ESP8266如何发送数据?

回帖(1)

杨颜

2021-10-15 16:53:31
#include


void ConfigUART();


void Delay(unsigned int i )
{
        int x=0;


        for(x=0;x }


void Delay2(unsigned int i )
{
        unsigned int x=0;


        int y=0;


        for(y=0;y<500;y++)
        {
                for(x=0;x         }
       
}




/********************************************************************
名称:串口发送函数  功能:MCU向无线WIFI模块ESP8266发送数据  
********************************************************************/
void Send_Uart(unsigned char value)
{  
        ES=0;                                                  //关闭串口中断  
        TI=0;                                           //清发送完毕中断请求标志位   
        SBUF=value;                                 //发送  
        while(TI==0);                                 //等待发送完毕   
        TI=0;                                           //清发送完毕中断请求标志位   
        ES=1;                                                  //允许串口中断  
}  


/********************************************************************
名称:WIFI模块设置函数  作用: 启动模块,以便可以实现无线接入和控制  
********************************************************************/


void SendAT(unsigned char *puf)         // 数组指针*puf指向字符串数组               
{   
        while(*puf!='')                    //遇到空格跳出循环  
        {   
                Send_Uart(*puf);                  //向WIFI模块发送控制指令。   
                Delay(5);   
                puf++;   
        }  


   
}










***it LED=P0^0;
***it LED2=P0^1;


***it LED3=P0^2;
***it ADDR0=P1^0;
***it ADDR1=P1^1;
***it ADDR2=P1^2;
***it ADDR3=P1^3;
***it ENLED=P1^4;
***it KEY1=P2^4;










void SetRed()
{
        ENLED=0;
        ADDR3=1;
        ADDR2=1;
        ADDR1=1;
        ADDR0=0;
        LED=1;
        LED2=1;




}






void InitWifi()
{




                 SendAT("AT+CWMODE=1rn");
                Delay2(500);
                SendAT("AT+CWJAP="CMCC-5tiu","ngfdew"rn");
                Delay2(2000);
                SendAT("AT+CIPSTART="TCP","192.168.1.4",19660rn");
                Delay2(500);
                SendAT("AT+CIPMODE=1rn");
                Delay2(500);
                SendAT("AT+CIPSENDrn");
                Delay2(500);










               


}




void main()
{




        Delay2(500);                //延迟


       


        ConfigUART();


        SetRed();




         InitWifi();


         


        while(1)
        {




        }


}






void ConfigUART()
{
        TMOD=0x20;                        //设置波特率为9600


        SCON=0x50;


       


        TH1=0xFD;


        TL1=TH1;


        PCON = 0x00;


        EA=1;


        ES=1;


        TR1=1;




}




        unsigned char  RxdByte=0;


void InterruptUART() interrupt 4
{








        if(RI)
        {
                RI=0;                                //接收到uart信息后置0
               
                RxdByte=SBUF;                //将接收的信息放置于变量


                if(RxdByte=='1')
                {
                        LED=0;
                        LED2=1;
                }
                else if(RxdByte=='2')
                {
                        LED=0;
                        LED2=0;
                }
                else if(RxdByte=='3')
                {
                        LED=0;
                        LED3=1;       
                        SendAT("0102");                        //如果你想发送信息,可以这么写
                }
                else
                {
                        LED=0;
                        LED2=0;
                        LED3=0;
                }
        }


        if(TI)
         {
                 TI=0;
         }


}
举报

更多回帖

发帖
×
20
完善资料,
赚取积分