1.基本配置命令:
AT+CIOBAUD=******//修改波特率为********(模块初始波特率默认为115200,该命令通过串口助手发送,重新上电后有效)
AT+CWMODE=2//设置模块为AP模式
AT+CWSAP='111','222',11,0//设置wifi名字为111,密码是222,通道号是11,加密方式是OPEN(可以修改)
AT+CIPMUX=1//启动多路连接方式(可以修改)
AT+CIPSERVER=1,5000//开启server,端口号为5000(可以修改)
AT+CIPSEND=0,5//向id为0的链接发送5字节数据(可以修改)
2.单片机控制程序:单片机型号为STC89C52RC,晶振11.0592MHz,波特率为9600(控制程序均为自己编写且测试有效)
#include<reg51.h>
void Serial_Inti();//初始化程序(必须使用,否则无法收发)
void Uart_Sends(unsigned char *str);//发送char型字符串
//void Delay1ms(unsigned int t);//1ms延时函数
unsigned char Uart_Receive();//接收字符子函数
void Uart_Dat(unsigned char dat);//数据发送子函数
void Wifi_Init();//wifi模块初始化
void Uart_Byte(char byte);//字节发送子函数
void Delay1ms(unsigned int t);//t ms延时子函数
/*串口初始化子函数*/
void Serial_Inti()//串口初始化,一定注意不要启动T1的串口中断
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xFD;
TL1 = TH1;
PCON = 0x00;
ES=0;//关闭串口中断
TR1 = 1;
}
/*字符串发送子函数(用于配置)*/
void Uart_Sends(unsigned char *str)
{
while(*str!='\0')
{
SBUF=*str;
while(!TI);//等待发送完成信号(TI=1)出现
TI=0;//清除发送中断标志位以继续发送
str++;
}
}
/*WIFI模块初始化*/
void Wifi_Init()
{
Delay1ms(3000);
Serial_Inti();
Uart_Sends('AT+CWMODE=2\r\n');
Delay1ms(2000);
Uart_Sends('AT+CWSAP=\'******\',\'*****\',11,0\r\n');//wifi名称及密码设置
Delay1ms(2000);
Uart_Sends('AT+CIPMUX=1\r\n');
Delay1ms(2000);
Uart_Sends('AT+CIPSERVER=1,5000\r\n');
}
/*字节发送子函数*/
void Uart_Byte(char byte)
{
SBUF=byte;
while(!TI);
TI=0;
}
/*数据发送子函数*/
void Uart_Dat(unsigned char dat)
{
Uart_Sends('AT+CIPSEND=0,1\r\n');
Delay1ms(1000);
Uart_Byte(dat);
Uart_Byte('\r');
Uart_Byte('\n');
Delay1ms(100);//延时100ms防止出现循环发送现象
}
/*指令接收子函数*/
unsigned char Uart_Receive()
{
unsigned char order;
RI=0;//先将接收表示位置0,防止wifi'配置使的返回信息将其置1
while(!RI);//等待接收到信息后跳出循环
order=SBUF;//当RI==1时接收到数据
RI=0;//清除接收中断标志位以继续接收
return order;
}
void Delay1ms(unsigned int t) //误差 0us
{
unsigned char a,b,c;
for(t;t>0;t--)
for(c=1;c>0;c--)
for(b=142;b>0;b--)
for(a=2;a>0;a--);
}