|
51單片機WIFI模塊的資料:
0.png (65.05 KB, 下載次數(shù): 206)
下載附件
2017-1-16 22:30 上傳
所有資料下載:
串口wifi模塊51單片機代碼.rar
(39.81 KB, 下載次數(shù): 189)
2017-1-15 11:49 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
主程序:
- /*************************************************
- Copyright (C), Shanghai xunzhan Electronic Technology Co., Ltd.
- File name: main.c
- Author: Jacky
- Mail: sscxyt_support@163.com
- Version: V1.0.0
- Description:
- Others:
- History:
- 1. Date:
- Author:
- Modification:
- 2. ...
- *************************************************/
- #include <string.h>
- #include <intrins.h>
- #include <stdio.h>
- #include "main.h"
- #include "wifi.h"
- #include "Msc51_Drive.h"
- #include "STC89C51RC_RD_PLUS.h"
- main()
- {
- HardWareInit(); // 硬件初始化
- // 設(shè)置wifi模塊參數(shù),使用的是不帶應(yīng)答的模式設(shè)置,沒有判斷模塊返回,參數(shù)設(shè)置可以這樣。
- // tcp數(shù)據(jù)通訊建議啟用應(yīng)答模式。
- Wifi_Para_set(TCP);
- u8LinkState = 0;
- printf("wifi module has linkup with a server!!");
- while(!u8LinkState) // 等待設(shè)置成功,這是死循環(huán),用戶自己可以按照要求修改
- {
- WifiLink(0); // 0是默認組號,第一組是默認組號。由于發(fā)射時候功耗大,模塊快速發(fā)熱,建議加上延時函數(shù)
- // delayS(60); // 比如1分鐘掃描一次,直到掃描到AP.
- }
- /////// 主應(yīng)用程序///////////////
- while(1)
- {
- if(gcReceComm1OK) // 從串口收到有效的wifi數(shù)據(jù)
- {
- // WIFI通訊數(shù)據(jù)處理
- ProcessWIFIData();
- gcReceComm1OK = 0;
- }
- }
- while(1) // 去掉編譯未調(diào)用警告
- {
- ScanNetWork(0xffff,1);
- WIFIReset();
- WIFICloseAp(0,1);
- WIFILinkOrCloseServer(1,1);
- }
- }
- /*
- *********************************************************************************************************
- ** 函數(shù)名稱 :HardWareInit(void)
- ** 函數(shù)功能 :硬件初始化
- ** 入口參數(shù) :無
- ** 出口參數(shù) :無
- *********************************************************************************************************
- */
- void HardWareInit(void)
- {
- RS0 = RS1 = 0;// 使用寄存器組0
- AUXR = 0x01;
- EA = 0;
- P1 = 0xFF;
- P2 = 0xFF;
- P3 = 0xFF;
- P4 = 0xFF;
- Uart_Init(); // wifi模塊: 波特率19200/38400/57600/115200bps 數(shù)據(jù)位:8bits 校驗位:無 停止位:1bits 流控 :無
- EA = 1;
-
- }
- /*
- *********************************************************************************************************
- ** 函數(shù)名稱 :Void Wifi_Para_set(void)
- ** 函數(shù)功能 :WIFI 參數(shù)設(shè)置
- ** 入口參數(shù) :無
- ** 出口參數(shù) :無
- *********************************************************************************************************
- */
- void Wifi_Para_set(unsigned char u8DataType)
- {
- 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};
- gcNetParaBuffer[0].M_id = WIFI_TCPIP;
- gcNetParaBuffer[0].cLength = 4;
- gcNetParaBuffer[0].cInfo[0] = 192;
- gcNetParaBuffer[0].cInfo[1] = 168;
- gcNetParaBuffer[0].cInfo[2] = 1;
- gcNetParaBuffer[0].cInfo[3] = 200;
- WIFISetNetPara(0xb1,&gcNetParaBuffer[0],1);
-
- gcNetParaBuffer[0].M_id = WIFI_TCPMASET;
- gcNetParaBuffer[0].cLength = 1;
- gcNetParaBuffer[0].cInfo[0] = 1; // 255,255,255,0
- WIFISetNetPara(0xb1,&gcNetParaBuffer[0],1);
-
- gcNetParaBuffer[0].M_id = WIFI_TCPGATEWAY;
- gcNetParaBuffer[0].cLength = 4;
- gcNetParaBuffer[0].cInfo[0] = 192; // 192.168.1.1
- gcNetParaBuffer[0].cInfo[1] = 168;
- gcNetParaBuffer[0].cInfo[2] = 1;
- gcNetParaBuffer[0].cInfo[3] = 1;
- WIFISetNetPara(0xb1,&gcNetParaBuffer[0],1);
-
- gcNetParaBuffer[0].M_id = WIFI_TCPSERVERIP;
- gcNetParaBuffer[0].cLength = 4;
- gcNetParaBuffer[0].cInfo[0] = 192; // 192.168.1.20
- gcNetParaBuffer[0].cInfo[1] = 168;
- gcNetParaBuffer[0].cInfo[2] = 1;
- gcNetParaBuffer[0].cInfo[3] = 20;
- WIFISetNetPara(0xb1,&gcNetParaBuffer[0],1);
- gcNetParaBuffer[0].M_id = WIFI_TCPPORT;
- gcNetParaBuffer[0].cLength = 2;
- gcNetParaBuffer[0].cInfo[0] = 0x17; // 6000
- gcNetParaBuffer[0].cInfo[1] = 0x70;
- WIFISetNetPara(0xb1,&gcNetParaBuffer[0],1);
- gcNetParaBuffer[0].M_id = WIFI_ENCRYPTTYPE;
- gcNetParaBuffer[0].cLength = 1;
- gcNetParaBuffer[0].cInfo[0] = 1; //
- WIFISetNetPara(0xb1,&gcNetParaBuffer[0],1); //
-
- gcNetParaBuffer[0].M_id = WIFI_ENKEY;
- gcNetParaBuffer[0].cLength = 64;
- gcNetParaBuffer[0].M_id = WIFI_BSSID;
- gcNetParaBuffer[0].cLength = 6;
- gcNetParaBuffer[0].cInfo[0] = 0x00; //
- gcNetParaBuffer[0].cInfo[1] = 0x1a;
- gcNetParaBuffer[0].cInfo[2] = 0x70;
- gcNetParaBuffer[0].cInfo[3] = 0x35;
- gcNetParaBuffer[0].cInfo[4] = 0xb9;
- gcNetParaBuffer[0].cInfo[5] = 0x32;
- WIFISetNetPara(0xb1,&gcNetParaBuffer[0],1);
- // channel
- gcNetParaBuffer[0].M_id = WIFI_CHANEL;
- gcNetParaBuffer[0].cLength = 1;
- gcNetParaBuffer[0].cInfo[0] = 6;
- WIFISetNetPara(0xb1,&gcNetParaBuffer[0],0);
- // SSID // 推薦用00填充后面沒有使用的空白區(qū)
- gcNetParaBuffer[0].M_id = WIFI_SSID;
- gcNetParaBuffer[0].cLength = 33;
- gcNetParaBuffer[0].cInfo[0] = 'H';
- gcNetParaBuffer[0].cInfo[1] = 'L';
- gcNetParaBuffer[0].cInfo[2] = 'K';
- memset(&gcNetParaBuffer[0].cInfo[2],0,30);
- WIFISetNetPara(0xb1,&gcNetParaBuffer[0],0); // 加載在第一組參數(shù)組號中
-
- // 數(shù)據(jù)類型 tcp udp raw
- gcNetParaBuffer[0].M_id = WIFI_DATATYPE;
- gcNetParaBuffer[0].cLength = 1;
- gcNetParaBuffer[0].cInfo[0] = u8DataType;
- WIFISetNetPara(0xb1,&gcNetParaBuffer[0],0); // 加載在第一組參數(shù)組號中
-
- // tcp 使能監(jiān)聽,可以做服務(wù)端器使用,可以做到雙向隨時發(fā)起通訊
- if(u8DataType == 2)
- {
- gcNetParaBuffer[0].M_id = WIFI_TCPMONITOR;
- gcNetParaBuffer[0].cLength = 1;
- gcNetParaBuffer[0].cInfo[0] = 1;
- WIFISetSysPara(&gcNetParaBuffer[0],0);
- ///WIFISetNetPara(0xb1,&gcNetParaBuffer[0],1); // 加載在第一組參數(shù)組號中
- }
- WifiSendAck();
- WifiSendNomalData(parmid,23,1);
-
- {
- ScanNetWork(0x3fff,1);
- WIFIRequerNetPara(0xb1,23,parmid,1);
- }
- }
- void WifiLink(unsigned char u8LinkGrup)
- {
- unsigned long u32TimeOut;
-
- u8LinkState = 0;
- WIFIJoinAp(u8LinkGrup,1);
- while( (gcReceComm1OK != 0) || (u32TimeOut < 0x2ffffff) );
- {
- if(gcReceComm1OK)
- {
- if( (ATReceBuffer[0].gcATReceData[5] == LINKNET_END) && (ATReceBuffer[0].gcATReceData[6] == 0) )
- {
- u8LinkState = 1;
- }
- }
- }
- }
復(fù)制代碼
|
評分
-
查看全部評分
|