找回密码
 立即注册

QQ登录

只需一步,快速开始

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

WIFI EDP协议 连接中国移动云

[复制链接]
跳转到指定楼层
楼主
ID:535575 发表于 2019-5-23 21:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


  1.     #define MAIN_Fosc                22118400L        
  2.     #include        "STC15Fxxxx.H"
  3.     #define                Baudrate1        115200UL
  4.     #define                Baudrate2        115200UL


  5.     u8 code Connect_Com[]={0X10,0X32,0X00,0X03,0X45,0X44,0X50,0X01,0X40,0X01,0X2C,0X00,0X09,0X35,0X31,0X38,0X39,0X38,0X38,0X32,0X37,
  6.             0X31,0X00,0X1C,0X63,0X52,0X6E,0X67,0X4F,0X50,0X4B,0X3D,0X33,0X6C,0X4D,0X65,0X78,0X32,0X41,0X75,0X45,0X69,0X32,0X41,0X37,0X63,0X6D,0X58,0X58,0X38,0X63,0X3D,0xff};



  7.     u8 code Save_Data   []={0X80,0X63,0X00,0X01,0X00,0X5F,0X7B,0X0A,0X09,0X22,0X64,0X61,0X74,0X61,0X73,0X74,0X72,0X65,0X61,0X6D,0X73,0X22,0X3A,0X09,0X5B,0X7B,0X0A,0X09,0X09,0X09,0X22,0X69,
  8.             0X64,0X22,0X3A,0X09,0X22,0X74,0X65,0X6D,0X70,0X65,0X72,0X61,0X74,0X75,0X72,0X65,0X22,0X2C,0X0A,0X09,0X09,0X09,0X22,0X64,0X61,0X74,0X61,0X70,0X6F,0X69,
  9.             0X6E,0X74,0X73,0X22,0X3A,0X09,0X5B,0X7B,0X0A,0X09,0X09,0X09,0X09,0X09,0X22,0X76,0X61,0X6C,0X75,0X65,0X22,0X3A,0X09,0X38,0X30,0X0A,0X09,0X09,0X09,0X09,0X7D,0X5D,0X0A,
  10.       0X09,0X09,0X7D,0X5D,0X0A,0X7D,0xff};
  11.     unsigned char code WIFI_Heartbeat[]={0XC0,0X00,0XFF};

  12.     bit        B_TX1_Busy;        
  13.     bit        B_TX2_Busy;        
  14.     bit                Heartbeat_Flag;
  15.     bit                Heartbeat_Detection;
  16.     u8                Res_Char;
  17.            
  18.             void         PrintString1(u8 *puts);
  19.             void         PrintString2(u8 *puts);
  20.             void         PrintString_baowen(u8 *puts);      
  21.                   
  22.             void        UART1_config(u8 brt);        
  23.             void        UART2_config(u8 brt);        
  24.             void         PrintString1(u8 *puts);
  25.             void         PrintString2(u8 *puts);
  26.             void WIFI_Init();
  27.             void Delay3000ms();
  28.             void Delay10000ms();
  29.                   

  30.             void        Heartbeat_Response()
  31.     {
  32.             unsigned char j;
  33.             if(Heartbeat_Flag==1)
  34.             {
  35.                     Heartbeat_Flag=0;
  36.             }
  37.             else
  38.             {
  39.                     for(j=0;j<3 && Heartbeat_Flag !=1;j++)
  40.                     {
  41.                             PrintString_baowen(WIFI_Heartbeat);
  42.                             Delay3000ms();
  43.                             Delay3000ms();
  44.                             if(Heartbeat_Flag==1)
  45.                                     break;
  46.                     }
  47.                     if(Heartbeat_Flag==1)
  48.                     {
  49.                             Heartbeat_Flag=0;
  50.                     }
  51.                     else
  52.                     {
  53.                             WIFI_Init();        
  54.                             Delay3000ms();
  55.                             PrintString_baowen(Connect_Com);   
  56.                             Delay3000ms();
  57.                     }
  58.             }
  59.     }
  60.            

  61.    
  62.    
  63.    
  64.    
  65.     void main(void)
  66.     {
  67.             P0M1 = 0;        P0M0 = 0;        
  68.             P1M1 = 0;        P1M0 = 0;        
  69.             P2M1 = 0;        P2M0 = 0;        
  70.             P3M1 = 0;        P3M0 = 0;        
  71.             P4M1 = 0;        P4M0 = 0;        
  72.             P5M1 = 0;        P5M0 = 0;        
  73.             P6M1 = 0;        P6M0 = 0;        
  74.             P7M1 = 0;        P7M0 = 0;        

  75.             UART1_config(1);        
  76.             UART2_config(2);        
  77.             EA = 1;                                
  78.       
  79.             WIFI_Init();
  80.             PrintString_baowen(Connect_Com);
  81.             Delay3000ms();
  82.    
  83.    
  84.    
  85.             while (1)
  86.             {
  87.    
  88.             }      
  89.     }


  90.    
  91.    
  92.    
  93.    
  94.    
  95.     void PrintString1(u8 *puts)
  96.     {
  97.         for (; *puts != 0;        puts++)           
  98.             {
  99.                     SBUF = *puts;
  100.                     B_TX1_Busy = 1;
  101.                     while(B_TX1_Busy);
  102.             }
  103.     }

  104.    
  105.    
  106.    
  107.    
  108.    
  109.     void PrintString2(u8 *puts)
  110.     {
  111.         for (; *puts != 0;        puts++)           
  112.             {
  113.                     S2BUF = *puts;
  114.                     B_TX2_Busy = 1;
  115.                     while(B_TX2_Busy);
  116.             }
  117.     }
  118.     void PrintString_baowen(u8 *puts)
  119.     {
  120.         for (; *puts != 0xff;        puts++)           
  121.             {
  122.                     S2BUF = *puts;
  123.                     B_TX2_Busy = 1;
  124.                     while(B_TX2_Busy);
  125.             }
  126.     }


  127.    
  128.    
  129.    
  130.    
  131.    
  132.     void        SetTimer2Baudraye(u16 dat)
  133.     {
  134.             AUXR &= ~(1<<4);        
  135.             AUXR &= ~(1<<3);        
  136.             AUXR |=  (1<<2);        
  137.             TH2 = dat / 256;
  138.             TL2 = dat % 256;
  139.             IE2  &= ~(1<<2);        
  140.             AUXR |=  (1<<4);        
  141.     }

  142.    
  143.    
  144.    
  145.    
  146.    
  147.     void        UART1_config(u8 brt)
  148.     {
  149.             
  150.             if(brt == 2)
  151.             {
  152.                     AUXR |= 0x01;               
  153.                     SetTimer2Baudraye(65536UL - (MAIN_Fosc / 4) / Baudrate1);
  154.             }

  155.             
  156.             else
  157.             {
  158.                     TR1 = 0;
  159.                     AUXR &= ~0x01;               
  160.                     AUXR |=  (1<<6);        
  161.                     TMOD &= ~(1<<6);        
  162.                     TMOD &= ~0x30;               
  163.                     TH1 = (u8)((65536UL - (MAIN_Fosc / 4) / Baudrate1) / 256);
  164.                     TL1 = (u8)((65536UL - (MAIN_Fosc / 4) / Baudrate1) % 256);
  165.                     ET1 = 0;        
  166.                     INT_CLKO &= ~0x02;        
  167.                     TR1  = 1;
  168.             }
  169.             

  170.             SCON = (SCON & 0x3f) | 0x40;        
  171.    
  172.             ES  = 1;        
  173.             REN = 1;        
  174.             P_SW1 &= 0x3f;
  175.             
  176.             
  177.    

  178.             B_TX1_Busy = 0;
  179.    
  180.    
  181.     }


  182.    
  183.    
  184.    
  185.    
  186.    
  187.     void        UART2_config(u8 brt)        
  188.     {
  189.             if(brt == 2)
  190.             {
  191.                     SetTimer2Baudraye(65536UL - (MAIN_Fosc / 4) / Baudrate2);

  192.                     S2CON &= ~(1<<7);        
  193.                     IE2   |= 1;                        
  194.                     S2CON |= (1<<4);        
  195.                     P_SW2 &= ~0x01;      
  196.                     

  197.                     B_TX2_Busy = 0;
  198.    
  199.    
  200.             }
  201.     }


  202.    
  203.    
  204.    
  205.    
  206.     void UART1_int (void) interrupt UART1_VECTOR
  207.     {
  208.             if(RI)
  209.             {
  210.                     RI = 0;
  211.             }

  212.             if(TI)
  213.             {
  214.                     TI = 0;
  215.                     B_TX1_Busy = 0;
  216.             }
  217.     }

  218.    
  219.    
  220.    
  221.    
  222.     void UART2_int (void) interrupt UART2_VECTOR
  223.     {
  224.            
  225.             if((S2CON & 1) != 0)
  226.             {
  227.                     S2CON &= ~1;        
  228.                     Res_Char=S2BUF;
  229.                     SBUF=Res_Char;

  230.             if(Res_Char==0XD0)
  231.             {
  232.                     Heartbeat_Detection=1;
  233.             }
  234.             else
  235.                     if((Res_Char==0X00) && (Heartbeat_Detection==1))
  236.                     {
  237.                             Heartbeat_Flag=1;
  238.                     }
  239.                     else
  240.                             Heartbeat_Detection=0;
  241.             }

  242.             if((S2CON & 2) != 0)
  243.             {
  244.                     S2CON &= ~2;        
  245.                     B_TX2_Busy = 0;
  246.             }

  247.     }



  248.     void Delay10000ms()               
  249.     {
  250.             unsigned char i, j, k;

  251.             _nop_();
  252.             _nop_();
  253.             i = 165;
  254.             j = 59;
  255.             k = 28;
  256.             do
  257.             {
  258.                     do
  259.                     {
  260.                             while (--k);
  261.                     } while (--j);
  262.             } while (--i);
  263.     }


  264.     void Delay3000ms()               
  265.     {
  266.             unsigned char i, j, k;

  267.             _nop_();
  268.             _nop_();
  269.             i = 127;
  270.             j = 18;
  271.             k = 107;
  272.             do
  273.             {
  274.                     do
  275.                     {
  276.                             while (--k);
  277.                     } while (--j);
  278.             } while (--i);
  279.     }




  280.     void   WIFI_Init()
  281.     {
  282.            
  283.               PrintString2("+++");
  284.               Delay10000ms();
  285.            
  286.               PrintString2("AT\r\n");
  287.               Delay10000ms();
  288.            
  289.         PrintString2("AT+CWMODE=3\r\n");
  290.               Delay10000ms();
  291.            
  292.         PrintString2("AT+RST\r\n");
  293.                     Delay10000ms();      
  294.            
  295.               PrintString2("AT+CWJAP=\"iPhoneSE\",\"12345678\"\r\n");
  296.                     Delay10000ms();
  297.                     Delay10000ms();
  298.               Delay10000ms();
  299.            
  300.         PrintString2("AT+CIPSTART=\"TCP\",\"183.230.40.39\",876\r\n");
  301.         Delay10000ms();      
  302.               Delay10000ms();
  303.               Delay10000ms();      

  304.         PrintString2("AT+CIPMODE=1\r\n");
  305.                     Delay10000ms();
  306.                   
  307.               PrintString2("AT+CIPSEND\r\n");
  308.                     Delay10000ms();
  309.             
  310.                   
  311.                   
  312.     }




复制代码

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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