STA+UDP相关配置指令 STA+UDP模式配置函数设计

描述

      在万物互联的时代,各家互联网公司都大力推广物联网平台,WIFI作为连接平台的其中一种枢纽,ESP8266就是其中的一个典型代表。ESP8266模块内置TCP/IP协议栈,采用串口AT指令集操作方式,操作简单。
      ESP8266工作模式有AP、STA、AP+STA共存模式;内置TCP/IP协议栈,通信方式支持TCP和UDP两种方式。

      TCP/IP协议源于1969年,是针对Internet开发的一种体系结构和协议标准,目的在于解决异种计算机网络的通信问题。使得网络在互联时能为用户提供一种通用、一致的通信服务。是Internet采用的协议标准。   TCP/IP是一组通信协议的代名词,是由一系列协议组成的协议簇。它本身指两个协议集: 

      TCP(传输控制协议)。

       IP(互联网络协议)。  

   TCP协议:

      即传输控制协议,是一个可靠的、面向连接的协议。 具有连接建立、数据传输和连接释放这三个阶段,在传送数据时是按序传送的。 

   UDP协议:

      采用无连接的方式,不管发送的数据包是否到达目的主机,数据包是否出错。收到数据包的主机也不会告诉发送方是否正确收到了数据,它的可靠性是由上层协议来保障的。  

    1.STA+UDP相关配置指令

	"AT\r\n",//测试指令
    "AT+RST\r\n",
    "ATE0\r\n",
    "AT+CWMODE=1\r\n",//STA模式
    "AT+CWJAP=\"360WIFI_123\",\"12345678\"\r\n",//连接WIFI
    "AT+CIFSR\r\n",//查询IP
    "AT+CIPSTART=\"UDP\",\"172.20.7.2\",10500,8080,0\r\n",//建立UDP
    "AT+CIPMODE=1\r\n",//设置透传模式
    "AT+CIPSEND\r\n",//发送数据

   2.STA+UDP模式配置函数设计

/*******************************************************************************************************************
**形参: wifi_name --WIFI名
**      password  --密码
**      remote_ip  --远端IP地址(255.255.255.255为广播地址)
**      remote_prot  --远端端口号
**      localhost    ---本地端口号
**返回值:0 --成功,
**       其它值 --失败
**示例:ESP8266_UDP_STA_Mode("360WIFI_123","12345678","172.20.7.2",10500,8080);
*********************************************************************************************************************/
u8 ESP8266_UDP_STA_Mode(u8 *wifi_name,u8 *password,u8 *remote_ip,u16 remote_prot,u16 localprot)
{
   char buff[100];
   u8 i=0;
    for(i=0;i<5;i++)
    {
        USARTx_SendStr(USART3,(u8 *)"+++"); //退出透传模式
        Delay_Ms(1000);
        printf("1.测试指令.......\r\n");
        if(ESP8266_SendCmd((u8 *)"AT\r\n",(u8 *)"OK")==0)break;
    }
    if(i==5)return 1;
    printf("2.重启模块.......\r\n");
    USARTx_SendStr(USART3,(u8 *)"AT+RST\r\n");
    Delay_Ms(1000);
    Delay_Ms(1000); 
    printf("3.关回显.......\r\n");
    if(ESP8266_SendCmd((u8 *)"ATE0\r\n",(u8 *)"OK"))return 2; 
    printf("4.设置为STA模式.......\r\n");
    if(ESP8266_SendCmd((u8 *)"AT+CWMODE=1\r\n",(u8 *)"OK"))return 3;   
    printf("6.连接WIFI.......\r\n");
    snprintf(buff,sizeof(buff),"AT+CWJAP=\"%s\",\"%s\"\r\n",wifi_name,password);
    if(ESP8266_SendCmd((u8 *)buff,(u8 *)"OK"))return 5;   
    printf("7.查询IP.......\r\n");
    if(ESP8266_SendCmd((u8 *)"AT+CIFSR\r\n",(u8 *)"OK"))return 6; 
    ESP8266_GetData((char *)usart3_rx_buff,esp8266_info.ipaddr,"STAIP");
    printf("8.建立UDP连接.....\r\n");
    snprintf(buff,sizeof(buff),"AT+CIPSTART=\"UDP\",\"%s\",%d,%d,0\r\n",remote_ip,remote_prot,localprot);
    if(ESP8266_SendCmd((u8 *)buff,(u8 *)"OK"))return 7; 
    printf("9.设置透传.......\r\n");
    if(ESP8266_SendCmd((u8 *)"AT+CIPMODE=1\r\n",(u8 *)"OK"))return 8; 
    printf("10.发送数据.......\r\n");
    if(ESP8266_SendCmd((u8 *)"AT+CIPSEND\r\n",(u8 *)">"))return 9; 
    esp8266_info.port=localprot;
    return 0;
}

    运行效果:

UDP
  审核编辑:汤梓红
 
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分