欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2634|回復: 2
打印 上一主題 下一主題
收起左側

51單片機如何讀取串口的數據,又如何通過串口向GA6發送AT指令呢?

[復制鏈接]
跳轉到指定樓層
樓主
ID:727575 發表于 2020-4-27 10:54 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
如題
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:367369 發表于 2020-4-27 19:28 | 只看該作者
收發都使用SBUF寄存器,

在串口中斷中
接收:
for(i=0;i<數組長度,i++)
接收數組【i】=SBUF;
發送:
while(TI)
for(i=0;i<數組長度,i++)
SBUF=發送數組【i】;
回復

使用道具 舉報

板凳
ID:367369 發表于 2020-4-27 19:34 | 只看該作者
這是我以前用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<N*10;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;  //清除發送忙標志
}
}

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表