找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机WIFI模块学习源码

  [复制链接]
跳转到指定楼层
楼主
51单片机WIFI模块的资料:

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

主程序:
  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.   Description:   
  8.   Others:        
  9.   History:      
  10.     1. Date:
  11.       Author:
  12.       Modification:
  13.     2. ...
  14. *************************************************/
  15. #include <string.h>
  16. #include <intrins.h>
  17. #include <stdio.h>

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


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

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

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

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

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

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

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

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


  170. }

  171. void WifiLink(unsigned char u8LinkGrup)
  172. {
  173.         unsigned long  u32TimeOut;
  174.        
  175.         u8LinkState = 0;
  176.         WIFIJoinAp(u8LinkGrup,1);                    
  177.         while( (gcReceComm1OK != 0) || (u32TimeOut < 0x2ffffff) );
  178.         {
  179.                 if(gcReceComm1OK)
  180.                 {
  181.                         if( (ATReceBuffer[0].gcATReceData[5] == LINKNET_END)  && (ATReceBuffer[0].gcATReceData[6] == 0) )
  182.                         {
  183.                                  u8LinkState = 1;
  184.                         }
  185.                 }
  186.         }
  187. }
复制代码


评分

参与人数 2黑币 +55 收起 理由
Blackboy + 5 赞一个!
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:169164 发表于 2017-6-13 07:11 | 只看该作者
真可以
回复

使用道具 举报

板凳
ID:189630 发表于 2017-6-13 09:03 | 只看该作者
必须支持
回复

使用道具 举报

地板
ID:229786 发表于 2017-8-29 09:01 | 只看该作者
学习一下
回复

使用道具 举报

5#
ID:199188 发表于 2017-9-2 15:14 | 只看该作者
很好的学习冽程
回复

使用道具 举报

6#
ID:8691 发表于 2017-9-7 22:25 | 只看该作者
很好的资料!多谢楼主分享
回复

使用道具 举报

7#
ID:236780 发表于 2017-10-13 15:25 | 只看该作者
超级想要
回复

使用道具 举报

8#
ID:246250 发表于 2018-4-8 13:52 | 只看该作者
楼主,能说下解压密码吗
回复

使用道具 举报

9#
ID:296147 发表于 2018-4-10 23:45 | 只看该作者
楼主,求解压密码啊
回复

使用道具 举报

10#
ID:286582 发表于 2018-4-13 17:52 | 只看该作者
解压密码能否说一下呢
回复

使用道具 举报

11#
ID:286582 发表于 2018-4-13 17:56 | 只看该作者
忘记带脑子了,找到解压密码了
回复

使用道具 举报

12#
ID:334617 发表于 2018-5-21 16:22 | 只看该作者
是用51加WiFi芯片吗
回复

使用道具 举报

13#
ID:359281 发表于 2018-6-27 16:23 | 只看该作者
楼主,求解压密码啊
回复

使用道具 举报

14#
ID:378253 发表于 2018-7-24 12:56 | 只看该作者
学习了,谢谢分享!
回复

使用道具 举报

15#
ID:377919 发表于 2018-7-24 13:49 | 只看该作者
学习一下,拓展下自己的能力
回复

使用道具 举报

16#
ID:407873 发表于 2018-10-11 09:34 | 只看该作者
为啥都有密码呀
回复

使用道具 举报

17#
ID:260379 发表于 2018-11-7 20:23 | 只看该作者
zjnbzm 发表于 2018-6-27 16:23
楼主,求解压密码啊

你打开  就在右边就写着解压密码呢
回复

使用道具 举报

18#
ID:478963 发表于 2019-6-25 20:59 | 只看该作者
学习中,谢谢分享
回复

使用道具 举报

19#
ID:576936 发表于 2019-7-3 10:24 | 只看该作者
我需要。。。
回复

使用道具 举报

20#
ID:584036 发表于 2019-7-14 20:08 | 只看该作者
这个是哪家的模块啊
回复

使用道具 举报

21#
ID:585455 发表于 2019-7-24 10:39 | 只看该作者
肯定要支持
回复

使用道具 举报

22#
ID:589455 发表于 2019-7-24 11:32 | 只看该作者
支持支持,程序结构很明确
回复

使用道具 举报

23#
ID:451232 发表于 2019-7-24 11:59 | 只看该作者
单片机编程怎么弄H文件啊?h文件怎么用啊?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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