久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 51單片機驅動esp8266代碼 [打印本頁]

作者: 漸逝音璃    時間: 2018-5-2 00:26
標題: 51單片機驅動esp8266代碼
#include<reg52.h>               //51單片機常用的頭文件
#define uchar unsigned char     //宏定義一個無符號的char類型
#define uint unsigned int       //宏定義一個無符號的int類型

//發送一字節
void sendByte(uchar b)
{
  SBUF = b;
  while(!TI);
  TI=0;
}

//發送字符串
void sendString(uchar *s)
{
  while(*s != '\0') //字符串默認結尾'\0',以此來判斷字符串的結束
  {
    sendByte(*s);
    s++;
  }
}

//初始化ESP8266WiFi模塊
void initEsp()
{
  uint a;
  SCON = 0x50;    //8位數據,可變波特率
  TMOD = 0x20;    //設置定時器1位16位自動重裝模式
  TL1 = 0xfd;     //設置定時器初值,波特率為9600
  TH1 = 0xfd;
  ET1 = 0;        //禁止定時器1中斷
  TR1 = 1;        //啟動定時器1
  EA = 1;

  for (a=0; a<50000; a++);      //延時幾秒,讓模塊有時間啟動
  sendString("AT+CWMODE=2\n");  //設置為softAP和station共存模式

  //WiFi熱點不能通過代碼設置,可使用串口助手進行設置,該設置斷電不丟失
  /*
  for (a=0; a<20000; a++);
  sendString("AT+CWSAP='TEST','12345678',1,3\n"); //建立WiFi熱點
  */

  for (a=0; a<50000; a++);   
  sendString("AT+CIPMUX=1\n"); //啟動多連接

  for (a=0; a<20000; a++);
  sendString("AT+CIPSERVER=1,333\n");//建立server,端口為333

  for (a=0; a<20000; a++);
  sendString("AT+CIPSTO=50\n");     //服務器超時時間設置

  RI=0;
  ES=1;   //初始化完成,串行口中斷打開
}

//獲取數據,數據格式示例:+IPD,0,14:"time":"11:11"
void getData()
{
  uint a;
  if(receiveFlag)
  {
    for(i=0; i<2; i++)
    {
      Hour[i]=Buffer[17+i];
    }
    Hour[2]='\0';

    for(i=0; i<2; i++)
    {
      Minute[i]=Buffer[20+i];
    }
    Minute[2]='\0';

    //將獲取到的數據發送到串口助手上顯示
    for (a=0; a<10000; a++);    //需要延時,負責會造成數據錯亂導致丟包
    sendString(Hour);
    for (a=0; a<10000; a++);
    sendString(Minute);

    receiveFlag=0;
    count=0;
    for(i=0; i<22; i++)
    {
      Buffer[i]=0;
    }
  }
}

//主函數
void main()
{
  initEsp();            //初始化WiFi模塊
  receiveFlag = 0;      //receiveFlag判斷執行getData() 的標志
  count = 0;            //count緩沖區RXDdata[count]的索引  
  while(1)
  {
    getData();
  }
}

//利用中斷接收信息,且舍棄無效信息
void uart() interrupt 4  
{
  if(RI == 1)   
  {
    ES = 0;     //關閉串行中斷
    RI = 0;     //清除串口接收標志位
    temp = SBUF; //從串口緩沖區取得數據

    if(count<20)    //滿足需接收的信息長度,將數據存入緩沖區
    {
      Buffer[count]=temp;
      count++;
      if(Buffer[0]=='+')  //判斷是否為無效數據,由于WiFi模塊會自動加上"+PID.."開頭的字符串
      {
        receiveFlag = 1;
      }
      else
      {
        receiveFlag = 0;
        count = 0;
      }
    }
    ES = 1;
  }
}


作者: 付小熊    時間: 2020-1-3 00:36
樓主大神好,我在使用單片機控制esp8622連接另一個esp8622過程中發現,使用單片機控制連接不上,但是通過電腦串口的AT指令能連接上。這是什么原因?是不是您所說的不能通過51控制連接服務器,這個問題現在可以解決嗎?有伸手黨嫌疑,樓主見諒~




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 精品福利视频一区二区三区 | 久久毛片| 手机av在线 | 国产美女自拍视频 | 国产精品一区二区欧美 | 成人福利在线观看 | 看片国产 | 美日韩精品 | 久久久久中文字幕 | 国产精品99久久久久久www | 最新中文字幕在线 | 免费黄色av网站 | 91p在线观看| 波多野结衣一区二区三区 | 国产精品精品视频一区二区三区 | 91欧美激情一区二区三区成人 | 成人精品在线观看 | 欧美aaa级| 国产成人一区二区三区电影 | 久久免费视频1 | 日韩国产欧美视频 | 欧美一级欧美三级在线观看 | 亚洲国产精品一区 | 欧美啊v在线观看 | 中文字幕乱码一区二区三区 | 日韩视频成人 | 亚洲成人av | 天天综合久久 | 亚洲第一网站 | 久久精品久久综合 | 喷潮网站 | 久久男女视频 | 91久久精品一区二区二区 | 一级大片 | 色吧综合网 | 国产精品久久久久久久久久三级 | 精品国产免费一区二区三区演员表 | 国产成人精品一区二区三 | 999久久久久久久久 国产欧美在线观看 | 午夜精品久久久久久 | 欧美午夜精品久久久久免费视 |