




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实用标准文案AP模式AP的SSID:AT+WAP=11BG,LAUVAN(SSID),CHIAP的KEY:AT+WAKEY=WPA2PSK,AES,22222222AP模式:AT+WMODE=APAP作服务器时的端口号:AT+NETP=TCP,SERVER,6000,192.168.1.56AP的IP及网关:AT+LANN=192.168.1.1,255.255.255.0透传模式:AT+ENTM串口模式:/*名称:变量定义*/volatileuint8UART3_RxBufUART3_RXBUF_SIZE;volatileuint8UART3_TxBufUART3_TXBUF_SIZE;vo
2、latileuint8UART3RxFlag;/接收标志volatileuint16UART3_RxHead;/接收缓冲区读指针volatileuint16UART3_RxEnd;/接收缓冲区指针volatileuint8UART3_RxFullFlag;/接收缓冲区满标志volatileuint8UART3_RxEmptyFlag;/接收缓冲区空标志volatileuint8UART3TxFlag;/发送标志volatileuint16UART3_TxHead;volatileuint16UART3_TxEnd;volatileuint8UART3_TxEmptyFlag;/发送缓冲区空标志
3、volatileuint8UART3OverTime;/超时时间volatileuint8UART3OverFlag;/超时标志volatileuint8UART3RxCompTime;/串口接收完成时间volatileuint8UART3RxCompJudg;/串口接收完成判断volatileuint8UART3RxCompFlag;/串口接收完成标志volatileuint16Uart3OverTime;/WIFI相关参数volatileuint8WifiStatus=0;volatileuint8IsWifiBusy;volatileuint32Channel_Timer_Limit;限
4、时器精彩文档实用标准文案/volatileuint16Dog_IsWifiBusy=DOG_ISGPRSBUSY;volatileuint16Dog_IsWifiBusy=0;volatileuint8WifiSendBuf512;volatileuint8WifiRecBuf512;volatileuint8SetWifiParmFlag=0;volatileuint8SetWifiUartParmFlag=0;volatileuint8Send2BTime=0;volatileuint8WifiOnLinkFlag=0;volatileuint8WifiSendStartTime=0;vo
5、latileuint8WifiHeartbeatno=0;/Wifi发送心跳次数volatileuint8WifiSendEnterNetFlag=0;/Wifi发送登录帧标志ivolatileuint8WifiEtherNetFlag=0;/*Functionname:*Descriptions:inputparameters:Outputparameters:Returnedvalue:STM_EVAL_USART3_Init串口3中断服务函数无无无*/voidSTM_EVAL_USART3_Init(void)NVIC_InitTypeDefNVIC_InitStructure;/*En
6、ableandsetUSART3Interrupttothe0priority*/嵌套优先级分组为1NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);NVIC_InitStructure.NVIC_IRQChannel=USART3_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Ini
7、t(&NVIC_InitStructure);/*初始化客户端WifiPortIOSet*/voidWifiIOInit(void)精彩文档实用标准文案GPIO_InitTypeDefGPIO_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_
8、Speed_2MHz;GPIO_InitStructure.GPIO_Pin=Reload;/20140731GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_SetBits(GPIOB,Reload);定义Reload输出脚RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;GPIO_InitStructure.GPI
9、O_Pin=ResetTn;/脚20140731GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_SetBits(GPIOB,ResetTn);定义ResetTn输出RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;GPIO_InitStructure.GPIO_Pin=PWR_SW;/20140731GPIO_Ini
10、t(GPIOA,&GPIO_InitStructure);GPIO_SetBits(GPIOA,PWR_SW);/* 名称:USART3_Wifi()* 功能:初始化串口3* 入口参数:* 出口参数:* */voidUSART3_Wifi(void)GPIO_InitTypeDefGPIO_InitStructure;USART_InitTypeDefUSART_InitStructure;定义pwr_sW出脚/*configUSART2clock*/RCC_APB2PeriphClockCmd(RCC_APB1Periph_USART3|RCC_APB2Periph_GPIOB,精彩
11、文档实用标准文案ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);/*USART3GPIOconfig*/*ConfigureUSART3Tx(PB.10)asalternatefunctionpush-pull*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.
12、GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);/*ConfigureUSART3Rx(PB.11)asinputfloating*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOB,&GPIO_InitStructure);/*USART3modeconfig*/USART_InitStructure.USART_BaudRate=1
13、15200;USART_InitStructure.USART_WordLength=USART_WordLength_8b;USART_InitStructure.USART_StopBits=USART_StopBits_1;USART_InitStructure.USART_Parity=USART_Parity_No;USART_InitStructure.USART_HardwareFlowControlUSART_HardwareFlowControl_None;USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;U
14、SART_Init(USART3,&USART_InitStructure);/*使能串口3的发送和接收中断*/USART_ITConfig(USART3,USART_IT_RXNE,ENABLE);USART_Cmd(USART3,ENABLE);STM_EVAL_USART3_Init();/中断初始化WifiIOInit();/WIFI控制脚的初始化20140731)/* *Functionname:USART3_IRQHandler* *Descriptions:串口3中断服务函数* *inputparameters:无* *Outputparameters:无* *Retur
15、nedvalue:无*/voidUSART3_IRQHandler(void)(if(USART_GetITStatus(USART3,USART_IT_RXNE)!=RESET)(精彩文档实用标准文案UART3RxCompJudg=VALID_FLAG;UART3RxCompTime=0;Uart3OverTime=0;if(UART3_RxFullFlag=0)UART3_RxBufUART3_RxEnd+=USART_ReceiveData(USART3);/*保存接收到的数据*/if(UART3_RxEnd>=UART3_RXBUF_SIZE)UART3_RxEnd=0;if(U
16、ART3_RxEnd=UART3_RxHead)UART3_RxFullFlag=1;UART3_RxEmptyFlag=0;/USART_ITConfig(USART3,USART_IT_RXNE,ENABLE);/*Functionname:HandleRFSendData*Descriptions:inputparameters:Buffer:NByte:Outputparameters:Returnedvalue:发送多个字节数据发送数据存储位置发送数据个数*/voidHandleWifiSendData(unsignedchar*buffer,intbufferlen)while(b
17、ufferlen>=0)USART_SendData(USART3,*buffer+);ResetWdog();while(USART_GetFlagStatus(USART3,USART_FLAG_TC)=RESET);bufferlen-;USART_Cmd(USART3,ENABLE);/* 名称:HandleRFUartTimer()* 功能:处理读UART1时间* 入口参数:精彩文档实用标准文案*出口参数:*/voidHandleWifiUartTimer(void)(if(UART3RxCompJudg=VALID_FLAG)/接收是否完成判断(if(+UART3RxComp
18、Time>=UART3_COMP_TIME)/判断接收中断之间超时(UART3RxCompTime=0;UART3RxCompJudg=0;UART3RxCompFlag=VALID_FLAG;/NoReDataTime=0;elseUart3OverTime+;/* 名称:Uart3ReadBytes()* 功能:读取串口2字符串* 入口参数:*pBuf:读取数据存储区* 出口参数:* */uint16Uart3ReadBytes(uint8*pBuf)(uint16nEnd=0;uint16Size=0;if(UART3_RxEmptyFlag=0)(nEnd=UART3_RxEnd
19、;UART3_RxFullFlag=0;串口0接收数据缓冲区不为空/中断可能改变此值/end>headif(UART3_RxHead<nEnd)(Size=nEnd-UART3_RxHead;memcpy(pBuf,(uint8*)&UART3_RxBuf0+UART3_RxHead,Size);UART3_RxHead=nEnd;精彩文档实用标准文案else/head>end(Size=UART3_RXBUF_SIZE+nEnd-UART3_RxHead;memcpy(pBuf,(uint8*)&UART3_RxBuf0+UART3_RxHead,UART3
20、_RXBUF_SIZE-UART3_RxHead);if(nEnd>0)memcpy(pBuf+UART3_RXBUF_SIZE-UART3_RxHead,(uint8*)&UART3_RxBuf0,nEnd);UART3_RxHead=nEnd;if(UART3_RxHead=UART3_RxEnd)UART3_RxEmptyFlag=1;/接收数据缓冲区空elseSize=0;memset(uint8*)&UART3_RxBuf0,0x00,512);returnSize;/*名称:GetWifiMode485Data()* 功能:读出接收的数据,取出完整的一帧,放到
21、接收BUF,* 入口参数:无* 出口参数:返回长度和数据BUF*/uint16GetWifiMode485Data(void)(uint16loop,temps,size;uint16i,starti;uint8temp1,temp2;uint16datalen;memset(uint8*)&WifiRecBuf,0x00,512);size=Uart3ReadBytes(uint8*)WifiRecBuf);temps=size;i=0;while(WifiRecBufi!=0x68&&i<size)i+;if(i>=size)错误格式信息return0;
22、/starti=i;/point0x68i+=7;精彩文档实用标准文案if(WifiRecBufi!=0x68)return0;i+;/pointctrlcodei+;/pointlen;temp1=WifiRecBufi;temp2=WifiRecBufi+1;/2013-09-05datalen=(uint16)(temp1+temp2*256);i+=2;if(i+datalen>=temps)return0;i+=datalen;/pointcsi+;/point0x16if(WifiRecBufi!=0x16)return0;size=datalen+9;/head(9)+cs
23、+0x16for(loop=0;loop<size;loop+)WifiRecBufloop=WifiRecBufloop+starti;returnsize;/*名称:GetWifiATData()* 功能:读出接收的数据,取出完整的一帧,放到接收BUF,* 入口参数:无* 出口参数:返回长度和数据BUF*/uint16GetWifiATData(void)uint16size;memset(uint8*)&WifiRecBuf,0x00,512);size=Uart3ReadBytes(uint8*)WifiRecBuf);returnsize;/* *初始化客户端WifiP
24、armSet*/精彩文档实用标准文案voidWifiParmSet(void)(GPIO_SetBits(GPIOB,Reload);GPIO_ResetBits(GPIOB,ResetTn);Channel_Timer_Limit=200;GPIO_SetBits(GPIOA,PWR_SW);WifiStatus=Wifi_INIT;SetWifiParmFlag=VALID_FLAG;WifiEtherNetFlag=0;/* 名称:WifiATFrame()* 功能:整理上发数据包并发送* 入口参数:status:状态,*pData:数据地址,dataSize:数据大小设置WIFI用户名
25、及密码:AT+WAP=11BG,LAUVAN(SSID),CHIAT+WAKEY=WPA2PSK,AES,22222222* 出口参数:OK:正确,ERROR错误* /voidWifiATFrame(uint8status,uint8*pData,uint16dataSize)voidWifiATFrame(uint8status)(uint8*ptr;uint8len;uint16size=0;uint16temp,temp1,temp2,temp3,temp4;uint16severport;ptr=(uint8*)&WifiSendBuf;* (ptr+)=0x41;* (ptr
26、+)=0x54;* (ptr+)=0X2B;size+=3;size=0;/A/Tif(status=Wifi_STA)(* (ptr+)=0x57;* (ptr+)=0x4D;* (ptr+)=0X4F;* (ptr+)=0x44;* (ptr+)=0x45;* (ptr+)=0x3D;* (ptr+)=0x41;/+/AT+WMODE=AP/W/M/O/D/E/=/A精彩文档实用标准文案*(ptr+)=0x50;/*(ptr+)=0x41;size+=8;)/P/Aelseif(status=Wifi_WSSSID)/AT+WAP=11BG,LAUVAN(SSID),CHI(* (ptr+
27、)=0x57;/W* (ptr+)=0x41;/A* (ptr+)=0X53;/P* (ptr+)=0x50;/=size+=4;len=WifiName0;memcpy(ptr,(uint8*)&WifiName1,len);ptr+=len;size+=len;)elseif(status=Wifi_WSKEY)AT+WAKEY=WPA2PSK,AES,22222222(*(ptr+)=二0x57;/W*(ptr+)=0x41;/A*(ptr+)=0x4b;/K*(ptr+)=0x45;/E*(ptr+)=0x59;/Y*(ptr+)=二0x3D;/=*(ptr+)=二0x57;/
28、W*(ptr+)=0x50;/P*(ptr+)=0x41;/A*(ptr+)=二0x32;/2*(ptr+)=0x50;/P*(ptr+)=二0x53;/S*(ptr+)=0x4b;/K*(ptr+)=0x2c;/,*(ptr+)=0x41;/A*(ptr+)=0x45;/E*(ptr+)=二0x53;/S*(ptr+)=0x2c;/,/AP的KEY:size+=18;len=WifiPass0;memcpy(ptr,(uint8*)&WifiPass1,len);ptr+=len;size+=len;精彩文档实用标准文案)elseif(status=Wifi_WANN)AT+LANN
29、=192.168.1.1,255.255.255.0(/AP的IP及网关:*(ptr+)=二0x4C;/L*(ptr+)=0x41;/A*(ptr+)=二0x4E;/N*(ptr+)=二0x4E;/N*(ptr+)=二0x3D;/=*(ptr+)=二0x31;/1*(ptr+)=二0x39;/9*(ptr+)=二0x32;/2*(ptr+)=二0X2E;/.*(ptr+)=二0x31;/1*(ptr+)=二0x36;/6*(ptr+)=二0x38;/8*(ptr+)=二0x2E;/.*(ptr+)=二0x31;/1*(ptr+)=二0x2E;/.*(ptr+)=二0x31;/1*(ptr+)=
30、二0x2C;/,*(ptr+)=二0x32;/2*(ptr+)=二0x35;/5*(ptr+)=二0x35;/5*(ptr+)=二0X2E;/.*(ptr+)=二0x32;/2*(ptr+)=二0x35;/5*(ptr+)=二0x35;/5*(ptr+)=二0X2E;/.*(ptr+)=二0x32;/2*(ptr+)=二0x35;/5*(ptr+)=二0x35;/5*(ptr+)=二0X2E;/.*(ptr+)=二0x31;/0size+=30;)elseAT+NETP=TCP,CLIENT,6000,192.168.1.56(* (ptr+)=0x4E;/N* (ptr+)=0x45;/E*
31、 (ptr+)=0x54;/T* (ptr+)=0x50;/Pif(status=WifiNETP)精彩文档实用标准文案*(ptr+)=:0x3D;/=*(ptr+)=:0x54;/T*(ptr+)=:0x43;/C*(ptr+)=:0x50;/P*(ptr+)=:0x2C;/,*(ptr+)=:0x53;/S*(ptr+)=:0x45;/E*(ptr+)=:0x52;/R*(ptr+)=:0X56;/V*(ptr+)=:0x45;/E*(ptr+)=:0x52;/R*(ptr+)=:0x2C;/,size+=16;severport=(uint16)(SeverIPTemp4+SeverIP
32、Temp5*256);temp=severport%10000;temp1=(severport/10000);*(ptr+)=0x30|(temp1&0x0f);8temp2=(temp%1000);temp3=(temp/1000);* (ptr+)=0x30|(temp3&0x0f);8temp=(temp2%100);temp4=(temp2/100);* (ptr+)=0x30|(temp4&0x0f);8temp2=(temp%10);temp1=(temp/10);* (ptr+)=0x30|(temp1&0x0f);8* (ptr+)=0x30|
33、(temp2&0x0f);8size+=5;* (ptr+)=0x2C;/,temp=(SeverIPTemp0%100);temp1=(SeverIPTemp0/100);* (ptr+)=0x30|(temp1&0x0f);8temp2=(temp%10);temp3=(temp/10);* (ptr+)=0x30|(temp3&0x0f);8* (ptr+)=0x30|(temp2&0x0f);8* (ptr+)=0X2E;/.size+=4;temp=(SeverIPTemp1%100);temp1=(SeverIPTemp1/100);* (ptr+)
34、=0x30|(temp1&0x0f);8temp2=(temp%10);temp3=(temp/10);* (ptr+)=0x30|(temp3&0x0f);8精彩文档实用标准文案* (ptr+)=0x30|(temp2&0x0f);/8* (ptr+)=0X2E;/.size+=4;temp=(SeverIPTemp2%100);tempi=(SeverIPTemp2/100);* (ptr+)=0x30|(temp1&0x0f);/8temp2=(temp%10);temp3=(temp/10);* (ptr+)=0x30|(temp3&0x0f);
35、/8* (ptr+)=0x30|(temp2&0x0f);/8* (ptr+)=0X2E;/.size+=4;temp=(SeverIPTemp3%100);temp1=(SeverIPTemp3/100);* (ptr+)=0x30|(temp1&0x0f);/8temp2=(temp%10);temp3=(temp/10);* (ptr+)=0x30|(temp3&0x0f);/8* (ptr+)=0x30|(temp2&0x0f);/8/*(ptr+)=0X2E;/.size+=3;)elseif(status=Wifi_Reset)/AT+Z(*(ptr
36、+)=0x5a;/zsize+=1;WifiStatus=Wifi_INIT;/SetWifiUartParmFlag=VALID_FLAG;SetWifiParmFlag=0;)*(ptr+)=0x0d;/CR*(ptr+)=0x0a;/LFsize+=2;HandleWifiSendData(uint8*)&WifiSendBuf,size);)/*定时查询处理Wifi任务HandleWifiLinkTimer*/精彩文档实用标准文案voidHandleWifiLinkTimer(void)(/处理Wifi流程if(SetWifiParmFlag=VALID_FLAG)&&
37、amp;(Channel_Timer_Limit=0)(GPIO_SetBits(GPIOB,ResetTn);switch(WifiStatus)(caseWifi_INIT:/先发+memset(uint8*)&WifiSendBuf0,0x2b,3);HandleWifiSendData(uint8*)&WifiSendBuf,1);Send2BTime+;if(Send2BTime>2)(Channel_Timer_Limit=100;Send2BTime=0;elseChannel_Timer_Limit=10;break;caseWifi_A:/再发aWifi
38、SendBuf0=0x61;HandleWifiSendData(uint8*)&WifiSendBuf0,1);Channel_Timer_Limit=100;break;default:/开始发AT指令WifiATFrame(WifiStatus);Channel_Timer_Limit=100;break;处理Wifi串口模式elseif(SetWifiUartParmFlag=VALID_FLAG)&&(Channel_Timer_Limit=0)(GPIO_SetBits(GPIOB,ResetTn);switch(WifiStatus)(caseWifi_I
39、NIT:/先发+if(WifiSendStartTime>5)(/SendGprsEnterFrame(3);WifiSendStartTime=0;Channel_Timer_Limit=200;WifiSendEnterNetFlag=VALID_FLAG;精彩文档实用标准文案break;)WifiSendEnterNetFlag=0;memset(uint8*)&WifiSendBuf0,0x2b,3);HandleWifiSendData(uint8*)WifiSendBuf,1);Send2BTime+;if(Send2BTime>2)Channel_Timer_
40、Limit=100;Send2BTime=0;WifiSendStartTime+;)elseChannel_Timer_Limit=10;break;caseWifi_A:/再发aif(WifiSendStartTime>5)SendGprsEnterFrame(3);WifiSendStartTime=0;Channel_Timer_Limit=200;WifiSendEnterNetFlag=VALID_FLAG;break;)WifiSendBuf0=0x61;HandleWifiSendData(uint8*)WifiSendBuf,1);Channel_Timer_Limit
41、=100;WifiSendStartTime+;break;default:/开始发AT指令WifiATFrame(WifiStatus);Channel_Timer_Limit=50;break;)Channel_Timer_Limit=100;)*名称:HandleWifiData()功能:处理上行串口接收到的数据精彩文档实用标准文案* 入口参数:* 出口参数:* */voidHandleWifiData(void)(uint16DataLen;GprsFrameType*pLCFrame;if(SetWifiParmFlag=VALID_FLAG&&WifiSendEnt
42、erNetFlag!=VALID_FLAG)(DataLen=GetWifiATData();switch(WifiStatus)(caseWifi_INIT:if(WifiRecBuf0=0x61)WifiStatus=Wifi_A;break;caseWifi_A:if(WifiRecBuf0=0x2b&&WifiRecBuf1=0x6f&&WifiRecBuf2=0x6b)(if(SetWifiParmFlag!=0)WifiStatus=Wifi_STA;elseWifiStatus=Wifi_WSLK;break;caseWifi_STA:if(WifiRecBuf0=0x2b&&WifiRecBuf1=0x6f&&WifiRecBuf2=0x6b)WifiStatus=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025网络红人经纪公司与艺人合作合同
- 2025年因病和公司解除劳动合同的补偿标准
- 2025海外工程承包贷款合同2
- 2025关于标准劳动合同协议范本
- 钢筋劳务分包合同
- 2025年北京市家具买卖合同(木制家具类)
- 不动产附负担赠与合同范本
- 婚内出轨协议书范文
- 2025医疗机构定制门急诊门订购合同范本
- 工厂入股协议书退股
- 2025-2030年中国CAE软件行业市场行情监测及发展前景研判报告
- 2025江西南昌市江铜产融社会招聘1人笔试参考题库附带答案详解
- (二统)昆明市2025届“三诊一模”高三复习教学质量检测地理试卷(含答案)
- Unit 3 Keep Fit Section A 2a-2e 教学设计 2024-2025学年人教版(2024)七年级英语下册
- 2025徽县辅警考试题库
- (一模)2025年广东省高三高考模拟测试 (一) 卷数学试卷(含官方答案)
- 脑心健康管理师的学习汇报
- 树木移植合同范本
- 2025年张家界航空工业职业技术学院单招职业技能测试题库及参考答案
- 国开电大软件工程形考作业3参考答案
- 王阳明心学课件
评论
0/150
提交评论