89C52单片机用串口AT指令配置ESP8266WIFI模块

main.c

#include <reg52.h>


bit flagtxd=0;//发送单个字符成功标志
unsigned char rxdbyte=0;//接收变量


void Uart1_SendChar(unsigned char Udat)//发送单个字符函数
{
   flagtxd=0;
	SBUF=Udat;		//将要发送的数据放入串口数据缓冲区
	while(!flagtxd);		//等待发送完成
   	
}

void putchar(char c)
{

Uart1_SendChar(c);

}

void printf(unsigned char *p)//自编printf函数,非官方的那个函数
{
  while(*p!='\0')
  {
  putchar(*p++);

  }

}


void InitUART(unsigned int baud)//串口初始化

{

SCON = 0x50;	 //串口接收使能
TMOD&=0x0F;
TMOD|=0x20;
TH1=256-(11059200/12/32)/baud;
TL1=TH1;
ET1=0;
ES = 1;			 //串口中断使能
TR1 = 1;		 //定时器1使能

}


//毫秒延时函数

void delay_ms(unsigned int t)

{

unsigned char a,b;

while(t--)

{

for(b=102;b>0;b--)

for(a=3;a>0;a--);

}

}

void InitESP8266()//ESP8266初始化,延时时间是不合适的,你们自己调整一下
{
printf("AT\r\n");  //测试
        delayms(1200);         //适当延时,给wifi模块一点反应时间
       
        printf("AT+CWMODE=1\r\n");  //选择STA模式
	delayms(1200);

        printf("AT+RST\r\n");  //往串口发重启指令
	delayms(1200);         //适当延时,给wifi模块一点反应时间
 
	printf("AT+CWJAP=\"wifi\",\"123456\"\r\n");  //连接WIFI
	delayms(1200);
 
	printf("AT+CIPMUX=0\r\n");  //单通道模式
	delayms(1200);
	
	printf("AT+CIPSTART=\"TCP\",\"192.168.1.118\",6666\r\n");  //连接远程主机IP和端口号
	delayms(1200);
 
	printf("AT+CIPMODE=1\r\n");  //选择透传
	delayms(1200);
 
	printf("AT+CIPSEND\r\n");  //发送数据命令
	delayms(1200);

}

void main()

{

InitUART(9600);	//初始化串口
InitESP8266();

EA = 1;	 	//开总中断

while(1);

 
        
 
	


 


}


/*UART中断函数*/
void interruptUART() interrupt 4
{
if(RI)
 {
 RI=0;
 rxdbyte=SBUF;
 SBUF=rxdbyte;//将收到的数据回传回去,可以自己对返回数据做判断,执行动作
 }

if(TI)
 {
 TI=0;
 flagtxd=1;
 }
}
  • 2
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白q_5793545

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值