美文网首页
89C52单片机ESP8266 与 TCP Server 建立通

89C52单片机ESP8266 与 TCP Server 建立通

作者: 我的梨花糕 | 来源:发表于2020-02-19 08:55 被阅读0次

    89C52单片机ESP8266 与 TCP Server 建立通信

    一、物理配置

    ESP8266-01S 3.3v电源:给Esp8266提供3.3v电源 单片机的Rx/Tx引脚分别为P3.0,P3.1

    二、通信之前,双方的比特率必须保持一致。

    1.ESP8266使用AT指令调整波特率到9600

    AT+UART=9600,8,1,0,0
    AT+UART_CUR=9600,8,1,0,0
    AT+UART_EDF=9600,8,1,0,0
    

    AT指令集详解:


    1.PNG 2.PNG 3.PNG

    2.单片机89c52单片机采用串行口方式1编程实现

    (1)串口方式1


    4.PNG

    (2)单片机串口初始化


    5.PNG 6.PNG

    (3)代码实现

    • 初始化特殊寄存器
    void uart_init()//初始化波特率为9600
    {
        TMOD = 0X20;
        TH1 = 0xfd;
        TL1 = 0xfd;
        TR1 = 1;
        REN = 1;
        SM0 = 0;
        SM1 = 1;
        EA = 1;
        ES = 1;
    }
    
    • (进阶)初始化特殊寄存器
    void uart_init_X(int baudrate)//设置单片机串口波特率
    {
        TMOD = 0X20;
        if(baudrate == 4800){
            TH1 = 0xfa;
            TL1 = 0xfa;
        }
        if(baudrate == 9600){
            TH1 = 0xfd;
            TL1 = 0xfd;
        }
        if(baudrate == 2400){
            TH1 = 0xf4;
            TL1 = 0xf4;
        }
        if(baudrate == 1200){
            TH1 = 0xe8;
            TL1 = 0xe8;
        }
        TR1 = 1;
        REN = 1;
        SM0 = 0;
        SM1 = 1;
        EA = 1;
        ES = 1;
    }
    
    • 串口中断函数,中断号4
    void ser() interrupt 4
    {
        RI = 0;
        rec = SBUF;
        uart_flag = 1;
    }
    
    

    二、单片机发送给ESP的AT指令

    所用到的AT指令

    1. 查询本地IP地址


      CIFSR.png
    1. 设置多连接


      CIPMUX.png
    2. 设置传输模式


      CIPMODE.png

    4.保存透传到flash

    SAVETRANSLINK.png
    void initESP()
    {   
       Delay500ms();
       send_str("AT\r\n");
       Delay500ms();
       send_str("AT\r\n");
       Delay500ms();
       send_str("AT+CWMODE=3\r\n");
       delay();
       send_str("AT+CWSAP_CUR=\"ESP\",\"88888888\",4,4\r\n");//  回车加换行
       delay();
       
       send_str("AT+CIPSTART=\"TCP\",\"192.168.4.2\",1111\r\n");
       delay();
       send_str("AT+CIPMUX=0\r\n");//设置连接模式,0代表单一连接,1代表多连接
       delay();
       send_str("AT+CIPMODE=1\r\n");////设置为透传模式
       delay();
       send_str("AT+CIPSEND\r\n");
       delay();
       
       send_str("OK\r\n");
       Delay500ms();
       send_str("OK\r\n");
       Delay500ms();
       send_str("OK\r\n");
       Delay500ms();
       send_str("OK\r\n");
    }
    

    相关文章

      网友评论

          本文标题:89C52单片机ESP8266 与 TCP Server 建立通

          本文链接:https://www.haomeiwen.com/subject/kndofhtx.html