找回密码
 立即注册

QQ登录

只需一步,快速开始

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

串口wifi模块51单片机代码

[复制链接]
跳转到指定楼层
楼主
这是借鉴的一篇程序


单片机源程序如下:
  1. /*************************************************
  2.   Copyright (C), Shanghai xunzhan Electronic Technology Co., Ltd.
  3.   File name:      main.c
  4.   Author:         Jacky
  5.   Mail:                  sscxyt_support@163.com
  6.   Version:        V1.0.0  
  7.   Date:           2010-01-26
  8.   Description:   
  9.   Others:        
  10.   History:      
  11.     1. Date:
  12.       Author:
  13.       Modification:
  14.     2. ...
  15. *************************************************/
  16. #include <string.h>
  17. #include <intrins.h>
  18. #include <stdio.h>

  19. #include   "main.h"
  20. #include   "wifi.h"
  21. #include   "Msc51_Drive.h"       
  22. #include   "STC89C51RC_RD_PLUS.h"


  23. main()
  24. {
  25.         HardWareInit();                        // 硬件初始化
  26.         // 设置wifi模块参数,使用的是不带应答的模式设置,没有判断模块返回,参数设置可以这样。
  27.         // tcp数据通讯建议启用应答模式。
  28.         Wifi_Para_set(TCP);               
  29.         u8LinkState = 0;
  30.     printf("wifi module has linkup with a server!!");
  31.         while(!u8LinkState)        // 等待设置成功,这是死循环,用户自己可以按照要求修改
  32.         {
  33.                 WifiLink(0);                        // 0是默认组号,第一组是默认组号。由于发射时候功耗大,模块快速发热,建议加上延时函数
  34.                 // delayS(60);       // 比如1分钟扫描一次,直到扫描到AP.
  35.         }
  36.         /////// 主应用程序///////////////
  37.         while(1)
  38.         {
  39.                 if(gcReceComm1OK)        //  从串口收到有效的wifi数据               
  40.                 {
  41.                           // WIFI通讯数据处理
  42.                           ProcessWIFIData();
  43.                           gcReceComm1OK = 0;
  44.                 }
  45.         }
  46.         while(1)  // 去掉编译未调用警告
  47.         {
  48.                 ScanNetWork(0xffff,1);
  49.                 WIFIReset();
  50.                 WIFICloseAp(0,1);
  51.                 WIFILinkOrCloseServer(1,1);
  52.         }
  53. }
  54. /*
  55. *********************************************************************************************************
  56. ** 函数名称 :HardWareInit(void)
  57. ** 函数功能 :硬件初始化                           
  58. ** 入口参数 :无
  59. ** 出口参数 :无
  60. *********************************************************************************************************
  61. */
  62. void HardWareInit(void)
  63. {
  64.         RS0 = RS1 = 0;// 使用寄存器组0               
  65.     AUXR = 0x01;
  66.         EA                 = 0;
  67.         P1 = 0xFF;
  68.     P2 = 0xFF;
  69.     P3 = 0xFF;
  70.     P4 = 0xFF;
  71.         Uart_Init();        // wifi模块: 波特率19200/38400/57600/115200bps 数据位:8bits 校验位:无 停止位:1bits 流控 :无
  72.         EA = 1;
  73.        
  74. }
  75. /*
  76. *********************************************************************************************************
  77. ** 函数名称 :Void Wifi_Para_set(void)
  78. ** 函数功能 :WIFI 参数设置                        
  79. ** 入口参数 :无
  80. ** 出口参数 :无
  81. *********************************************************************************************************
  82. */
  83. void Wifi_Para_set(unsigned char u8DataType)
  84. {
  85.                 unsigned char parmid[23]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa};

  86.                 gcNetParaBuffer[0].M_id    = WIFI_TCPIP;
  87.                 gcNetParaBuffer[0].cLength = 4;
  88.                 gcNetParaBuffer[0].cInfo[0] = 192;  
  89.                 gcNetParaBuffer[0].cInfo[1] = 168;
  90.                 gcNetParaBuffer[0].cInfo[2] = 1;
  91.                 gcNetParaBuffer[0].cInfo[3] = 200;
  92.                 WIFISetNetPara(0xb1,&gcNetParaBuffer[0],1);  

  93.                
  94.                 gcNetParaBuffer[0].M_id    = WIFI_TCPMASET;
  95.                 gcNetParaBuffer[0].cLength = 1;
  96.                 gcNetParaBuffer[0].cInfo[0] = 1;  // 255,255,255,0
  97.                 WIFISetNetPara(0xb1,&gcNetParaBuffer[0],1);  
  98.        
  99.                 gcNetParaBuffer[0].M_id    = WIFI_TCPGATEWAY;
  100.                 gcNetParaBuffer[0].cLength = 4;
  101.                 gcNetParaBuffer[0].cInfo[0] = 192;  // 192.168.1.1
  102.                 gcNetParaBuffer[0].cInfo[1] = 168;
  103.                 gcNetParaBuffer[0].cInfo[2] = 1;
  104.                 gcNetParaBuffer[0].cInfo[3] = 1;
  105.                 WIFISetNetPara(0xb1,&gcNetParaBuffer[0],1);  
  106.        
  107.                 gcNetParaBuffer[0].M_id    = WIFI_TCPSERVERIP;
  108.                 gcNetParaBuffer[0].cLength = 4;
  109.                 gcNetParaBuffer[0].cInfo[0] = 192;  // 192.168.1.20
  110.                 gcNetParaBuffer[0].cInfo[1] = 168;
  111.                 gcNetParaBuffer[0].cInfo[2] = 1;
  112.                 gcNetParaBuffer[0].cInfo[3] = 20;
  113.                 WIFISetNetPara(0xb1,&gcNetParaBuffer[0],1);  

  114.                 gcNetParaBuffer[0].M_id    = WIFI_TCPPORT;
  115.                 gcNetParaBuffer[0].cLength = 2;
  116.                 gcNetParaBuffer[0].cInfo[0] = 0x17;  // 6000
  117.                 gcNetParaBuffer[0].cInfo[1] = 0x70;
  118.                 WIFISetNetPara(0xb1,&gcNetParaBuffer[0],1);

  119.                 gcNetParaBuffer[0].M_id    = WIFI_ENCRYPTTYPE;
  120.                 gcNetParaBuffer[0].cLength = 1;
  121.                 gcNetParaBuffer[0].cInfo[0] = 1; //
  122.                 WIFISetNetPara(0xb1,&gcNetParaBuffer[0],1);  //
  123.                
  124.                 gcNetParaBuffer[0].M_id    = WIFI_ENKEY;
  125.                 gcNetParaBuffer[0].cLength = 64;

  126.                 gcNetParaBuffer[0].M_id    = WIFI_BSSID;
  127.                 gcNetParaBuffer[0].cLength = 6;
  128.                 gcNetParaBuffer[0].cInfo[0] = 0x00; //
  129.                 gcNetParaBuffer[0].cInfo[1] = 0x1a;
  130.                 gcNetParaBuffer[0].cInfo[2] = 0x70;
  131.                 gcNetParaBuffer[0].cInfo[3] = 0x35;
  132.                 gcNetParaBuffer[0].cInfo[4] = 0xb9;
  133.                 gcNetParaBuffer[0].cInfo[5] = 0x32;
  134.                 WIFISetNetPara(0xb1,&gcNetParaBuffer[0],1);
  135.                 // channel
  136.                 gcNetParaBuffer[0].M_id    = WIFI_CHANEL;
  137.                 gcNetParaBuffer[0].cLength = 1;
  138.                 gcNetParaBuffer[0].cInfo[0] = 6;
  139.                 WIFISetNetPara(0xb1,&gcNetParaBuffer[0],0);  
  140.                 // SSID  // 推荐用00填充后面没有使用的空白区
  141.                 gcNetParaBuffer[0].M_id    = WIFI_SSID;  
  142.                 gcNetParaBuffer[0].cLength = 33;
  143.                 gcNetParaBuffer[0].cInfo[0] = 'H';
  144.                 gcNetParaBuffer[0].cInfo[1] = 'L';
  145.                 gcNetParaBuffer[0].cInfo[2] = 'K';
  146.                 memset(&gcNetParaBuffer[0].cInfo[2],0,30);
  147.                 WIFISetNetPara(0xb1,&gcNetParaBuffer[0],0);  // 加载在第一组参数组号中
  148.                
  149.                 // 数据类型 tcp udp  raw
  150.                 gcNetParaBuffer[0].M_id    = WIFI_DATATYPE;
  151.                 gcNetParaBuffer[0].cLength = 1;
  152.                 gcNetParaBuffer[0].cInfo[0] = u8DataType;
  153.                 WIFISetNetPara(0xb1,&gcNetParaBuffer[0],0);  // 加载在第一组参数组号中
  154.                
  155.                 // tcp 使能监听,可以做服务端器使用,可以做到双向随时发起通讯
  156.                 if(u8DataType == 2)
  157.                 {
  158.                         gcNetParaBuffer[0].M_id    = WIFI_TCPMONITOR;
  159.                         gcNetParaBuffer[0].cLength = 1;
  160.                         gcNetParaBuffer[0].cInfo[0] = 1;
  161.                         WIFISetSysPara(&gcNetParaBuffer[0],0);
  162.                         ///WIFISetNetPara(0xb1,&gcNetParaBuffer[0],1);  // 加载在第一组参数组号中
  163.                 }

  164.                 WifiSendAck();
  165.                 WifiSendNomalData(parmid,23,1);

  166.                
  167.                 {
  168.                 ScanNetWork(0x3fff,1);       
  169.                         WIFIRequerNetPara(0xb1,23,parmid,1);
  170. ……………………

  171. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
串口wifi模块51单片机代码.rar (39.81 KB, 下载次数: 10)




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

使用道具 举报

沙发
ID:222834 发表于 2017-7-31 16:50 | 只看该作者
谢谢楼主分享,51黑有你更精彩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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