通过串口在单片机c51语言中使用at指令,51单片机如何读取串口的数据,又如何通过串口向GA6发送AT指令呢?...

这是我以前用WIFI模块时的代码,希望对你有帮助

/**串口数据使用**/

#define RX1_Lenth  32   //串口接收缓冲长度

uchar RX1_Buffer[RX1_Lenth]; //接收缓冲

uchar TX1_Cnt; //发送计数

uchar RX1_Cnt; //接收计数

int  B_TX1_Busy; //发送忙标志

/**wifi模块命令**/

unsigned char  LYMS[13]="AT+CWMODE=2\r\n";

unsigned char  RST[8]="AT+RST\r\n";

unsigned char  SZDLJ[13]="AT+CIPMUX=1\r\n";

unsigned char  KQFU[21]="AT+CIPSERVER=1,5000\r\n";

unsigned char  FSSJ[13]="AT+CIPSEND=\r\n";//AT+CIPSEND= 发送数据

void Delay3(unsigned int N) //延时

{

int i;

for(i=0;i

}

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

void Uart_Init(void) //打开中断接口

{

TMOD = 0x21;   //定时器工作在定时器1的方式2

PCON = 0x00;   //不倍频

SCON = 0x50; //串口工作在方式1,并且启动串行接收

TH1 = 0xFd;    //设置波特率 9600

TL1 = 0xFd;

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

IT0=1;

IT1=1;

EX0=1;

EX1=1;

ET0=1;

PX0=0;

PX1=0;

PT0=1;

PS=0;

ES = 1;  //开串口中断

EA = 1;  //开总中断

RX1_Cnt=0;  //接受计数清零

TX1_Cnt = 0; //发送计数清零

B_TX1_Busy = 0;//初始化判忙标志位

}

void wifi(void) //WiFi调试

{

char i=0;

/******************设置WiFi模块**********************************************/

for(i=0;i<13;i++)//AT+CWMODE=2 设置成路由模式

{

SBUF=LYMS[i];Delay3(5);

}

Delay3(1000);

for(i=0;i<8;i++)//AT+RST 重启

{

SBUF=RST[i];Delay3(5);

}

Delay3(5000);

for(i=0;i<13;i++)//AT+CIPMUX=1 设置成多连接

{

SBUF=SZDLJ[i];Delay3(5);

}

Delay3(2000);

for(i=0;i<21;i++)//AT+CIPSERVER=1,5000 开启TCP服务端口

{

SBUF=KQFU[i];Delay3(5);

}

Delay3(2000);

}

void main()

{

Uart_Init();

wifi();

while(1)

{

}

}

void UART1_int (void) interrupt 4    //串口中断

{

if(RI)

{

RI = 0;

RX1_Buffer[RX1_Cnt] = SBUF;  //保存一个字节

if(RX1_Buffer[0]==0x45)

{

RX1_Cnt++;

}

else

{

RX1_Cnt=0;

}

if(RX1_Cnt>=10)

{

if(RX1_Buffer[0]==0x45&&RX1_Buffer[1]==0x53&&RX1_Buffer[2]==0x50)

{

if(RX1_Buffer[4]==0x4C&&RX1_Buffer[5]==0x45&&RX1_Buffer[6]==0x44)

{

if(RX1_Buffer[7]==0x31)

{

}

}

}

RX1_Cnt=0;

}

}

if(TI)

{

TI = 0;

B_TX1_Busy = 0;  //清除发送忙标志

}

}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值