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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機利用ESP8266無線點亮LED問題求助

[復制鏈接]
跳轉到指定樓層
樓主
60黑幣
論壇里的大神們,我想尋求幫助,今天看了官方文件,研究了論壇里很多帖子,大概明白ESP8266如何使用,但是動手做51單片機控制ESP8266wifi模塊點亮LED實驗時出現了一個問題,一直找不到原因。我先用下載器連接電腦,用串口調試助手設置好了ESP8266為AP模式,多連接,創建Sever服務器,然后連上wifi后,用網絡調試助手連接端口,收發正常,于是開始連電路。
我是用的某寶買的單片機最小系統,如下圖

ESP的TXD和RXD分別連接單片機的RXD和TXD(P3.0和P3.1),VCC接小系統上的3.3V供電,GND接GND,    CH_PD接板上3.3V(我一學單片機的同學說這個懸空就行,但是我不接后,發現連wifi信號都沒有,貌似沒工作)


連好后打開,有wifi信號(就是之前設置的,貌似單片機代碼不能配置網絡名稱和密碼),用電腦或手機連接成功,但是用網絡調試助手連接端口一直失敗,確認端口號和IP地址沒錯,不知道為什么。
代碼部分如下
  1. #include<reg52.h>
  2. #include<intrins.h>        
  3. #define uchar unsigned char
  4. #define uint unsigned int   
  5. sbit led=P1^0;
  6. uchar Receive,i;                             
  7. uint n;
  8. uchar Recive_table[15];  
  9. void ms_delay(uint t)
  10. {
  11.       uint i,j;
  12.       for(i=t;i>0;i--)
  13.        for(j=110;j>0;j--);
  14. }

  15. void us_delay(uchar t)
  16. {
  17.       while(t--);
  18. }


  19. void Uart_Init()                //波特率發生器
  20. {
  21.       SCON=0x50;     
  22.       PCON=0x00;     
  23.       TMOD=0x21;   
  24.       TH1=0xfd;
  25.       TL1=0xfd;
  26.       EA=1;                           
  27.       ES=1;                             
  28.       TR1=1;   
  29.       ET1=0;                        
  30. }

  31. void Send_Uart(uchar value)              //串口發送函數
  32. {
  33.       ES=0;         
  34.       TI=0;         
  35.       SBUF=value;     
  36.       while(TI==0);   
  37.       TI=0;         
  38.       ES=1;         
  39. }

  40. void ESP8266_Set(uchar *puf)                    //wifi設置函數
  41. {

  42.       while(*puf!='\0')   
  43.       {
  44.            Send_Uart(*puf);  
  45.            us_delay(5);
  46.            puf++;      
  47.       }
  48.       us_delay(5);
  49.       Send_Uart('\r');
  50.       us_delay(5);
  51.       Send_Uart('\n');   
  52.       
  53. }   

  54. void ESP8266_Sent(uchar *puf)             //發送數據函數
  55. {
  56.       ESP8266_Set("AT+CIPSEND=0,4");
  57.       while(*puf!='\0')   
  58.       {
  59.            Send_Uart(*puf);   
  60.            us_delay(5);
  61.            puf++;      
  62.       }
  63.       us_delay(5);
  64.       Send_Uart('\n');   
  65.       ms_delay(10);
  66. }   


  67. void main()
  68. {        
  69.             Uart_Init();
  70.                   led=1;
  71.                   ESP8266_Set("AT+CWMODE=2");
  72.                         ms_delay(1000);
  73.                         ESP8266_Set("AT+CIOBAUD=9600");
  74.                         ms_delay(1000);
  75.                         ESP8266_Set("AT+CIPMUX=1");
  76.                         ms_delay(1000);
  77.       ESP8266_Set("AT+CIPSERVER=1,8080");
  78.                         ms_delay(1000);
  79.                         ES=1;
  80.          while(1)
  81.          {        
  82.                 if((Recive_table[0]=='+')&&(Recive_table[1]=='I')&&(Recive_table[2]=='P'))
  83.             {
  84.                 if((Recive_table[3]=='D')&&(Recive_table[6]==','))
  85.                      {   
  86.                            if(Recive_table[9]=='0')
  87.                             {
  88.                                                                                                                          led=0;
  89.                                                                                                                         ESP8266_Sent("1رÕ");
  90.                             }

  91.                            else if (Recive_table[9]=='1')
  92.                             {                                
  93.                                                                                                                          led=1;
  94.                                  ESP8266_Sent("¿aÆô");                 
  95.                                                                                                                 }
  96.                      }   
  97.                                          }      
  98.     }         
  99. }

  100. void Uart_Interrupt() interrupt 4                   //串行通訊中斷
  101. {   
  102.         static uchar i=0;  
  103.         if(RI==1)  
  104.         {   
  105.                 RI=0;   
  106.                 Receive=SBUF;                                                        
  107.                 Recive_table[i]=Receive;   
  108.                 if((Recive_table[i]=='\n'))
  109.                 {                     
  110.                         i=0;
  111.                 }   
  112.                 else i++;                                                                          
  113.         }   
  114.         else TI=0;   
  115. }  
復制代碼

C文件.rar (964 Bytes, 下載次數: 12)





分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:94031 發表于 2018-11-11 10:34 | 只看該作者
網絡通信不適合初學者,如果無線遠傳藍牙相對簡單點,雙方都藍牙透傳。
回復

使用道具 舉報

板凳
ID:303383 發表于 2018-11-11 12:29 | 只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽
回復

使用道具 舉報

地板
ID:408178 發表于 2018-11-11 15:31 | 只看該作者
CHPD和VCC之間,需要接一個100歐的電阻,網絡調試助手失敗,IP和端口如果沒錯,肯定是給8266初始化的AT指令沒有成功
回復

使用道具 舉報

5#
ID:403916 發表于 2018-11-13 19:48 | 只看該作者
可以連上端口了,多加了一條設置ESP波特率的指令,但是默認9600貌似不用加,也可能是小系統板子電壓的事,換成了3.3V小系統供電。代碼里的指令實現了,不過給端口發數據后,還是控制不了燈,,,,
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 毛片一区二区 | 欧美www在线观看 | 久久国产精品免费一区二区三区 | 久久久久久久一区二区三区 | 婷婷丁香在线视频 | 黄色av网站免费看 | 亚洲成av人片在线观看无码 | 人人精品 | 午夜视频在线 | 天天爱天天操 | 日韩国产中文字幕 | a级免费黄色片 | 一级黄色录像片子 | 国产免费国产 | 91国内视频在线 | 九九综合九九 | 97精品国产 | 欧美精品99 | 97精品超碰一区二区三区 | 人碰人操| 中文字幕一区在线 | 激情五月婷婷丁香 | 亚洲综合首页 | 国产欧美久久一区二区三区 | 牛牛热在线视频 | 久久久久久亚洲精品 | 98成人网 | 成人欧美一区二区三区黑人孕妇 | 91九色porny首页最多播放 | 影音先锋中文字幕在线观看 | 中文字幕在线视频一区二区三区 | 亚洲经典一区 | 欧美专区日韩 | 国产三级精品三级在线观看四季网 | 欧美成人自拍 | 国产精品一区二 | 国产成人精品免高潮在线观看 | 97伦理电影网 | 中文字幕久久久 | 91精品国产综合久久久久久漫画 | 国产欧美一区二区三区久久人妖 |