1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 添加无线网连接服务器 单片机加WIFI模块 一直无法连接到TCP服务器麻烦大家看看...

添加无线网连接服务器 单片机加WIFI模块 一直无法连接到TCP服务器麻烦大家看看...

时间:2021-04-28 02:05:18

相关推荐

添加无线网连接服务器 单片机加WIFI模块 一直无法连接到TCP服务器麻烦大家看看...

该楼层疑似违规已被系统折叠隐藏此楼查看此楼

单片机与WIFI模块项链,用AT指令使其加入家庭中固定的WIFI网络,再加入楼主建立的TCP服务器,以后可以发1和0控制P1^2的亮暗。代码不知道哪里错了,一直无法加入TCP服务器。

#include

//包含头文件

#define uint unsigned int

#define uchar unsigned char

#define RELOAD_COUNT 0xFA

/*****************LED灯对应P0口的1个端口*************/

sbit LED0=P1^2;

uchar Receive,i;

uint n;

uchar Recive_table[15]; //用于接收wifi模块反馈到MCU上的数据

/*******************************************************************

名称:延时函数

作用:毫秒级延时,微妙级延时函数,为数据收发完成作等待.......

********************************************************************/

void ms_delay(uint t)

{

uint i,j;

for(i=t;i>0;i--)

for(j=110;j>0;j--);

}

void us_delay(uchar t)

{

while(t--);

}

void Uart_Init()

{

SCON=0x50; //设置为串行口以方式1工作,8位异步通讯,允许接收中断。

//一帧信息为10位,1位起始位,8位数据位(低位在先),1位停止位。

PCON=0x80; //SMOD波特率选择位为1,SMOD=1.

TMOD=0x20; //设置定时器1为波特率发生器,工作在模式2,8位自动装载

TH1=0xFF;//波特率115200

TL1=TH1;

EA=1; //总中断打开

ES=0; //关闭串口中断

TR1=1; //启动定时器1

}

void Send_Uart(uchar value)

{

ES=0; //关闭串口中断

TI=0; //清发送完毕中断请求标志位

SBUF=value; //发送

while(TI==0); //等待发送完毕

TI=0; //清发送完毕中断请求标志位

ES=1; //允许串口中断

}

void ESP8266_Set(uchar *puf) // 数组指针*puf指向字符串数组

{

while(*puf!='\0') //遇到空格跳出循环

{

Send_Uart(*puf); //向WIFI模块发送控制指令。

us_delay(5);

puf++;

}

}

void ESP8266_Sent(uchar *puf) // 数组指针*puf指向字符串数组

{

while(*puf!='\0') //遇到空格跳出循环

{

Send_Uart(*puf); //向WIFI模块发送控制指令。

us_delay(5);

puf++;

}

us_delay(5);

Send_Uart('\n'); //换行

ms_delay(10);

}

void main() {

LED0=1;//关闭LED灯

Uart_Init();//使用独立的波特率发生器

ms_delay(2000);

ESP8266_Set("AT+RST\r\n"); //重新启动wifi模块

ms_delay(2000);

ESP8266_Set("AT+CWJAP=\"jzx606\",\"jzx60606\"\r\n");

ms_delay(3000);

ESP8266_Set("AT+CIPSTART=\"TCP\",\"10.89.8.48\",8899\r\n");

ms_delay(1000);

ES=1;

while(1)

{

if((Recive_table[0]=='+')&&(Recive_table[1]=='I')&&(Recive_table[2]=='P'))//MCU接收到的数据为+IPD时进入判断控制0\1来使小灯亮与灭

{

if((Recive_table[3]=='D')&&(Recive_table[6]==','))

{

if(Recive_table[9]=='0')

{

LED0=1; //0 灯灭

ESP8266_Sent("灯灭");

//wifi模块向pc端或手机端 发送"灯灭

}

else if (Recive_table[9]=='1')

{

LED0=0; //1 灯亮

ESP8266_Sent("灯亮");

} } }} }

void Uart_Interrupt( ) interrupt 4

{

static uchar i=0;

if(RI==1)

{

RI=0;

Receive=SBUF; //MCU接收wifi模块反馈回来的数据

Recive_table[i]=Receive;

i++;

if((Recive_table[i-1]=='\n'))i=0; //遇到换行 重新装值

}

else TI=0;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。