欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
51單片機如何讀取串口的數(shù)據(jù),又如何通過串口向GA6發(fā)送AT指令呢?
[打印本頁]
作者:
sunaik
時間:
2020-4-27 10:54
標題:
51單片機如何讀取串口的數(shù)據(jù),又如何通過串口向GA6發(fā)送AT指令呢?
如題
作者:
game灬boy
時間:
2020-4-27 19:28
收發(fā)都使用SBUF寄存器,
在串口中斷中
接收:
for(i=0;i<數(shù)組長度,i++)
接收數(shù)組【i】=SBUF;
發(fā)送:
while(TI)
for(i=0;i<數(shù)組長度,i++)
SBUF=發(fā)送數(shù)組【i】;
作者:
game灬boy
時間:
2020-4-27 19:34
這是我以前用WIFI模塊時的代碼,希望對你有幫助
/**串口數(shù)據(jù)使用**/
#define RX1_Lenth 32 //串口接收緩沖長度
uchar RX1_Buffer[RX1_Lenth]; //接收緩沖
uchar TX1_Cnt; //發(fā)送計數(shù)
uchar RX1_Cnt; //接收計數(shù)
int B_TX1_Busy; //發(fā)送忙標志
/**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= 發(fā)送數(shù)據(jù)
void Delay3(unsigned int N) //延時
{
int i;
for(i=0;i<N*10;i++);
}
/*********************************************************************/
void Uart_Init(void) //打開中斷接口
{
TMOD = 0x21; //定時器工作在定時器1的方式2
PCON = 0x00; //不倍頻
SCON = 0x50; //串口工作在方式1,并且啟動串行接收
TH1 = 0xFd; //設(shè)置波特率 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; //接受計數(shù)清零
TX1_Cnt = 0; //發(fā)送計數(shù)清零
B_TX1_Busy = 0;//初始化判忙標志位
}
void wifi(void) //WiFi調(diào)試
{
char i=0;
/******************設(shè)置WiFi模塊**********************************************/
for(i=0;i<13;i++)//AT+CWMODE=2 設(shè)置成路由模式
{
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 設(shè)置成多連接
{
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; //保存一個字節(jié)
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; //清除發(fā)送忙標志
}
}
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1