STMFWIFI初始化流程STA模式_第1页
STMFWIFI初始化流程STA模式_第2页
STMFWIFI初始化流程STA模式_第3页
STMFWIFI初始化流程STA模式_第4页
STMFWIFI初始化流程STA模式_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、STA的 SSID AT+WSSSID=1LAUVANSTA的 KEY:AT+WSKEY=WPAPSK,AES,pxfp默认fSTA模式:AT+WMODE=STASTA作 服务器时的端口号: AT+NETP=TCP,SERVERSTA的IP及网关:默认STA模式下MAC的设置:透传模式: AT+ENTM 串口模式:/*名称:变量定义*/ volatileuint8UART3_RxBufUART3_RXBUF_SIZE; volatileuint8UART3_TxBufUART3_TXBUF_SIZE; volatileuint8UART3RxFlag;/ 接收标志volatileuint16U

2、ART3_RxHead;/ 接收缓冲区读指针volatileuint16UART3_RxEnd;/ 接收缓冲区指针volatileuint8UART3_RxFullFlag;/ 接收缓冲区满标志volatileuint8UART3_RxEmptyFlag; /接/ 收缓冲区空标志 volatileuint8UART3TxFlag; / 发送标志 volatileuint16UART3_TxHead;volatileuint16UART3_TxEnd; volatileuint8UART3_TxEmptyFlag; /发送缓冲区空标志 volatileuint8UART3OverTime;/ 超

3、时时间volatileuint8UART3OverFlag;/ 超时标志volatileuint8UART3RxCompTime; /串口接收完成时间 volatileuint8UART3RxCompJudg; /串口接收完成判断 volatileuint8UART3RxCompFlag; /串口接收完成标志 volatileuint16Uart3OverTime;/WIFI 相关参数volatileuint8WifiStatus=0; volatileuint8IsWifiBusy;volatileuint32Channel_Timer_Limit;/ 限时器 /volatileuint16

4、Dog_IsWifiBusy=DOG_ISGPRSBUSY; volatileuint16Dog_IsWifiBusy=0;volatileuint8WifiSendBuf512; volatileuint8WifiRecBuf512; volatileuint8SetWifiParmFlag=0; volatileuint8SetWifiUartParmFlag=0;volatileuint8Send2BTime=0; volatileuint8WifiOnLinkFlag=0;volatileuint8WifiSendStartTime=0;volatileuint8WifiHeartbe

5、atno=0;/Wifi 发送心跳次数 volatileuint8WifiSendEnterNetFlag=0;/Wifi 发送登录帧标志 i volatileuint8WifiEtherNetFlag=0;/*Functionname:STM_EVAL_USART3_Init*Descriptions: 串口 3 中断服务函数 *inputparameters: 无 *Outputparameters: 无 *Returnedvalue: 无*/ voidSTM_EVAL_USART3_Init(void) NVIC_InitTypeDefNVIC_InitStructure;/*Enabl

6、eandsetUSART3Interrupttothe0priority*/NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);/ 嵌套优先级分组为 1 NVIC_InitStructure.NVIC_IRQChannel=USART3_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2; NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVI

7、C_Init(&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_Sp

8、eed_2MHz;GPIOnitStructure.GPIO_Pin=Reload定义 Reload输出脚GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_SetBits(GPIOB,Reload);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;GPIOnitStructure.GPIO_Pin=ResetTn定义 Res

9、etTn输出脚 GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_SetBits(GPIOB,ResetTn);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;GPIOni tStructure.GPIO_Pi n=PWR_sW定义 PWR_SW俞出脚GPIO_Init(GPIOA,&GPIO_InitStructure);

10、GPIO_SetBits(GPIOA,PWR_SW); /*名称: USART3_Wifi()* 功能:初始化串口 3*入口参数:*出口参数:*/voidUSART3_Wifi(void)GPIO_InitTypeDefGPIO_InitStructure;USART_InitTypeDefUSART_InitStructure;/*configUSART2clock*/ /RCC_APB2PeriphClockCmd(RCC_APB1Periph_USART3|RCC_APB2Periph_GPIOB,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Perip

11、h_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.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_I

12、nitStructure);/*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=115200;USART_InitStructure.USART_WordLength=USART_WordLength

13、_8b;USART_InitStructure.USART_StopBits=USART_StopBits_1;USART_InitStructure.USART_Parity=USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;USART_Init(USART3,&USART_InitStructure);/* 使能串口 3的发送和接收中断 *

14、/USART_ITConfig(USART3,USART_IT_RXNE,ENABLE);USART_Cmd(USART3,ENABLE);STM_EVAL_USART3_Init(); /中断初始化WifiIOInit();/WIFI 控制脚的初始化/*Functionname:USART3_IRQHandler*Descriptions: 串口 3 中断服务函数*inputparameters: 无*Outputparameters: 无*Returnedvalue: 无*/voidUSART3_IRQHandler(void) if(USART_GetITStatus(USART3,US

15、ART_IT_RXNE)!=RESET)UART3RxCompJudg=VALID_FLAG;UART3RxCompTime=0;Uart3OverTime=0;if(UART3_RxFullFlag=0)UART3_RxBufUART3_RxE nd+=USART_ReceiveData(USART3)保存接收至 U的数据 */if(UART3_RxEnd=UART3_RXBUF_SIZE)UART3_RxEnd=0;if(UART3_RxEnd=UART3_RxHead)UART3_RxFullFlag=1;UART3_RxEmptyFlag=0; /USART_ITConfig(USAR

16、T3,USART_IT_RXNE,ENABLE);/*Functionname:HandleRFSendData*Descriptions: 发送多个字节数据*inputparameters:Buffer: 发送数据存储位置*NByte: 发送数据个数*Outputparameters: 无*Returnedvalue:无*/voidHandleWifiSendData(unsignedchar*buffer,intbufferlen)while(bufferlen=0)USART_SendData(USART3,*buffer+);/ResetWdog(); while(USART_GetF

17、lagStatus(USART3,USART_FLAG_TC)=RESET); bufferlen-; /USART_Cmd(USART3,ENABLE); /* 名称: HandleRFUartTimer()*功能:处理读UART1时间* 入口参数:* 出口参数:* */voidHandleWifiUartTimer(void) if(UART3RxCompJudg=VALID_FLAG)接收是否完成判断if(+UART3RxCompTime=UART3_COMP_TIME判断接收中断之间超时UART3RxCompTime=0; UART3RxCompJudg=0; UART3RxCompF

18、lag=VALID_FLAG;/NoReDataTime=0;elseUart3OverTime+;/* 名称: Uart3ReadBytes()*功能:读取串口 2 字符串* 入口参数: *pBuf: 读取数据存储区* 出口参数:* */uint16Uart3ReadBytes(uint8*pBuf)uint16nEnd=0;/ 串口 0接收数据缓冲区不为空/ 中断可能改变此值/endheaduint16Size=0;if(UART3_RxEmptyFlag=0)nEnd=UART3_RxEnd;UART3_RxFullFlag=0; if(UART3_RxHeadend Size=UART

19、3_RXBUF_SIZE+nEnd-UART3_RxHead;memcpy(pBuf,(uint8*)&UART3_RxBuf0+UART3_RxHead,UART3_RXBUF_SIZE-UART3_RxHea d);if(nEnd0)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_Rx

20、Buf0,0x00,512);returnSize;/*名称: GetWifiMode485Data()* 功能:读出接收的数据,取出完整的一帧,放到接收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;wh

21、ile(WifiRecBufi!=0x68&i=size)return0;/ 错误格式信息starti=i;/point0x68i+=7;if(WifiRecBufi!=0x68)return0;i+;/pointctrlcodei+;/pointlen;temp1=WifiRecBufi;temp2=WifiRecBufi+1;datalen=(uint16)(temp1+temp2*256); /2013-09-05i+=2;if(i+datalen=temps)return0;i+=datalen;/pointcsi+;/point0x16if(WifiRecBufi!=0x16)ret

22、urn0;size=datalen+9;/head(9)+cs+0x16 for(loop=0;loop512)/ return;/ size=0;/ ptr=(uint8*)&WifiSendBuf;/*(ptr+)=0x41;/A/*(ptr+)=0x54;/T/*(ptr+)=0X2B;/+/ size+=3;/ if(status=Wifi_STA)/AT+WMODE=STA/ /*(ptr+)=0x57;/W/*(ptr+)=0x4D;/M/*(ptr+)=0X4F;/O/*(ptr+)=0x44;/D/ *(ptr+)=0x45;/E/*(ptr+)=0x3D;/=/*(ptr+)

23、=0x53;/S/*(ptr+)=0x54;/T/*(ptr+)=0x41;/A/size+=9;/elseif(status=Wifi_WSSSID)/AT+WSSSID=hu|e认/*(ptr+)=0x57;/W/*(ptr+)=0x53;/S/*(ptr+)=0X53;/S/*(ptr+)=0x53;/S/*(ptr+)=0x49;/I/*(ptr+)=0x44;/D/*(ptr+)=0x3D;/=/size+=7;/len=WifiName0;/memcpy(ptr,(uint8*)&WifiName1,len);/ptr+=len;/size+=len;/elseif(status=

24、Wifi_WSKEY)/AT+WSKEY=WPAPSK,AES,pxfpXf|认f/*(ptr+)=0x57;/W/*(ptr+)=0x53;/S/*(ptr+)=0x4b;/K/*(ptr+)=0x45;/E/*(ptr+)=0x59;/Y/*(ptr+)=0x3D;/=/*(ptr+)=0x57;/W/*(ptr+)=0x50;/P/*(ptr+)=0x41;/A/*(ptr+)=0x50;/P/*(ptr+)=0x53;/S/*(ptr+)=0x4b;/K/*(ptr+)=0x2c;/,/*(ptr+)=0x41;/A/*(ptr+)=0x45;/E/*(ptr+)=0x53;/S/*(

25、ptr+)=0x2c;/,/size+=17;/len=WifiPass0;/memcpy(ptr,(uint8*)&WifiPass1,len);/ptr+=len;/ size+=len;/ / 默认/*(ptr+)=0x57;/W/*(ptr+)=0x41;/A/*(ptr+)=0x4E;/N/*(ptr+)=0x4E;/N/*(ptr+)=0x3D;/=/*(ptr+)=0x44;/D/*(ptr+)=0x48;/H/*(ptr+)=0x43;/C/*(ptr+)=0x50;/P/*(ptr+)=0x2C;/,/*(ptr+)=0x31;/1/*(ptr+)=0x39;/9/*(ptr

26、+)=0x32;/2/*(ptr+)=0X2E;/./*(ptr+)=0x31;/1/*(ptr+)=0x36;/6/*(ptr+)=0x38;/8/*(ptr+)=0x2E;/./*(ptr+)=0x31;/1/*(ptr+)=0x2E;/./*(ptr+)=0x33;/3/*(ptr+)=0x35;/5/*(ptr+)=0x2C;/,/*(ptr+)=0x32;/2/*(ptr+)=0x35;/5/*(ptr+)=0x35;/5/*(ptr+)=0X2E;/./*(ptr+)=0x32;/2/*(ptr+)=0x35;/5/*(ptr+)=0x35;/5/*(ptr+)=0X2E;/./*

27、(ptr+)=0x32;/2/*(ptr+)=0x35;/5/*(ptr+)=0x35;/5/*(ptr+)=0X2E;/./*(ptr+)=0x30;/0/*(ptr+)=0x2C;/,/*(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/size+=48;/*(ptr+)=0x4E;/N/*(p

28、tr+)=0x45;/E/*(ptr+)=0x54;/T/*(ptr+)=0x50;/P/*(ptr+)=0x3D;/=/*(ptr+)=0x54;/T/*(ptr+)=0x43;/C/*(ptr+)=0x50;/P/*(ptr+)=0x2C;/,/*(ptr+)=0x43;/C/*(ptr+)=0x4C;/L/*(ptr+)=0x49;/I/*(ptr+)=0X45;/E/*(ptr+)=0x4E;/N/*(ptr+)=0x54;/T/*(ptr+)=0x2C;/,/size+=16;/ severport=(uint16)(SeverIPTemp0+SeverIPTemp1*256);/t

29、emp=severport%10000;/temp1=(severport/10000);/*(ptr+)=0x30|(temp1&0x0f);/8/temp2=(temp%1000);/temp3=(temp/1000);/ *(ptr+)=0x30|(temp3&0x0f); /8/temp=(temp2%100);/temp4=(temp2/100);/ *(ptr+)=0x30|(temp4&0x0f); /8/temp2=(temp%10);/temp1=(temp/10);/ *(ptr+)=0x30|(temp1&0x0f);/8/ *(ptr+)=0x30|(temp2&0x0

30、f);/8/ size+=5;/ *(ptr+)=0x2C; /,/temp=(SeverIPTemp5%100);/temp1=(SeverIPTemp5/100);/ *(ptr+)=0x30|(temp1&0x0f); /8/temp2=(temp%10);/temp3=(temp/10);/ *(ptr+)=0x30|(temp3&0x0f);/8/ *(ptr+)=0x30|(temp2&0x0f);/8/ *(ptr+)=0X2E;/./ size+=4;/temp=(SeverIPTemp4%100); /temp1=(SeverIPTemp4/100);/ *(ptr+)=0x

31、30|(temp1&0x0f); /8 /temp2=(temp%10);/temp3=(temp/10);/ *(ptr+)=0x30|(temp3&0x0f);/8/ *(ptr+)=0x30|(temp2&0x0f);/8/ *(ptr+)=0X2E;/./ size+=4;/temp=(SeverIPTemp3%100); /temp1=(SeverIPTemp3/100);/ *(ptr+)=0x30|(temp1&0x0f); /8 /temp2=(temp%10);/temp3=(temp/10);/ *(ptr+)=0x30|(temp3&0x0f);/8/ *(ptr+)=0x30|(temp2&0x0f);/8/ *(p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论