找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3322|回復(fù): 9
打印 上一主題 下一主題
收起左側(cè)

ESP8266無(wú)法接收單片機(jī)的指令

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:808611 發(fā)表于 2021-3-28 23:37 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
想問(wèn)一下,單片機(jī)可以與電腦串口通信,ESP8266也能與電腦串口通信并發(fā)送AT指令控制,但ESP8266接收不到來(lái)自單片機(jī)的AT指令是什么原因我用的是51開(kāi)發(fā)板,WIFI模塊是ESP-01S,因?yàn)殚_(kāi)發(fā)板電源接口不夠所以用開(kāi)發(fā)板給電源模塊供電再用ESP8266連接電源模塊
ESP8266的VCC和EN接電源模塊的3V3,GND接電源模塊的GND
ESP8266的TX、RX分別連接了單片機(jī)的P31(RX)、P30(TX)
不知道怎么上傳圖片,我就直接復(fù)制串口助手的信息了

(省略亂碼)

Ai-Thinker Technology Co. Ltd.

ready
AT+CWMODE=2
AT+CIPMUX=1
AT+CIPSERVER=1,8080

發(fā)送AT+CIPMUX?后顯示
AT+CIPMUX?

+CIPMUX:0

OK


下面是我找的例程
  1. #include<reg52.h>                                //51單片機(jī)常用的頭文件
  2. #define uchar unsigned char                //宏定義一個(gè)無(wú)符號(hào)的char類(lèi)型
  3. #define uint unsigned int                //宏定義一個(gè)無(wú)符號(hào)的int類(lèi)型

  4. //發(fā)送一字節(jié)
  5. void sendByte(uchar b)
  6. {
  7.   SBUF = b;
  8.   while(!TI);
  9.   TI=0;
  10. }

  11. //發(fā)送字符串
  12. void sendString(uchar *s)
  13. {
  14.   while(*s != '\0')        //字符串默認(rèn)結(jié)尾'\0',以此來(lái)判斷字符串的結(jié)束
  15.   {
  16.     sendByte(*s);
  17.     s++;
  18.   }
  19. }

  20. //初始化ESP8266WiFi模塊
  21. void initEsp()
  22. {
  23.   uint a;
  24.   SCON = 0x50;    //8位數(shù)據(jù),可變波特率
  25.   TMOD = 0x20;    //設(shè)置定時(shí)器1位16位自動(dòng)重裝模式
  26.   TL1 = 0xfd;     //設(shè)置定時(shí)器初值,波特率為9600
  27.   TH1 = 0xfd;
  28.   ET1 = 0;        //禁止定時(shí)器1中斷
  29.   TR1 = 1;        //啟動(dòng)定時(shí)器1
  30.   EA = 1;

  31.   for (a=0; a<50000; a++);                //延時(shí)幾秒,讓模塊有時(shí)間啟動(dòng)
  32.   sendString("AT+CWMODE=2\r\n");        //設(shè)置為softAP和station共存模式

  33.   //WiFi熱點(diǎn)不能通過(guò)代碼設(shè)置,可使用串口助手進(jìn)行設(shè)置,該設(shè)置斷電不丟失
  34.   /*
  35.   for (a=0; a<20000; a++);
  36.   sendString("AT+CWSAP='TEST','12345678',1,3\n"); //建立WiFi熱點(diǎn)
  37.   */

  38.   for (a=0; a<50000; a++);   
  39.   sendString("AT+CIPMUX=1\r\n"); //啟動(dòng)多連接

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



  42.   RI=0;
  43.   ES=1;   //初始化完成,串行口中斷打開(kāi)
  44. }

  45. //主函數(shù)  
  46. void  main()  
  47. {  
  48.   initEsp();
  49. }  
復(fù)制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:342911 發(fā)表于 2021-3-29 12:23 來(lái)自觸屏版 | 只看該作者
個(gè)人建議,可以把串口調(diào)試助手16進(jìn)制查看選上去分別對(duì)比單片機(jī)發(fā)出的AT和助手發(fā)的AT有何不同可能會(huì)發(fā)現(xiàn)新世界,之前記得做時(shí)每句結(jié)尾是\r\r\n

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

板凳
ID:808611 發(fā)表于 2021-3-29 22:59 | 只看該作者
muzhi 發(fā)表于 2021-3-29 12:23
個(gè)人建議,可以把串口調(diào)試助手16進(jìn)制查看選上去分別對(duì)比單片機(jī)發(fā)出的AT和助手發(fā)的AT有何不同可能會(huì)發(fā)現(xiàn)新世 ...

謝謝大佬的建議,試了一下確實(shí)稍有不同,但是多次嘗試更改程序后還是無(wú)法解決問(wèn)題。。
回復(fù)

使用道具 舉報(bào)

地板
ID:808611 發(fā)表于 2021-3-29 23:04 | 只看該作者
muzhi 發(fā)表于 2021-3-29 12:23
個(gè)人建議,可以把串口調(diào)試助手16進(jìn)制查看選上去分別對(duì)比單片機(jī)發(fā)出的AT和助手發(fā)的AT有何不同可能會(huì)發(fā)現(xiàn)新世 ...

主要問(wèn)題是ESP8266完全接收不到單片機(jī)的信息,例如串口不加換行直接發(fā)送的話8266會(huì)回復(fù)原句,用單片機(jī)不加任何\n或\r直接發(fā)送,8266也沒(méi)有回復(fù)

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

5#
ID:808611 發(fā)表于 2021-3-30 20:10 | 只看該作者
我悟了,解決了
回復(fù)

使用道具 舉報(bào)

6#
ID:342911 發(fā)表于 2021-3-30 21:39 來(lái)自觸屏版 | 只看該作者
153152837 發(fā)表于 2021-3-30 20:10
我悟了,解決了

是換行回車(chē)的問(wèn)題嗎?建議把解決方案總結(jié)寫(xiě)出來(lái),方便后來(lái)人
回復(fù)

使用道具 舉報(bào)

7#
ID:808611 發(fā)表于 2021-3-30 21:47 | 只看該作者
本帖最后由 153152837 于 2021-3-30 22:21 編輯

總結(jié)
1、檢查接線是否正確
2、單片機(jī)和ESP8266分別連接電腦,用串口助手調(diào)試
3、檢查波特率
4、使用開(kāi)發(fā)板的師兄千萬(wàn)千萬(wàn)要注意!!部分開(kāi)發(fā)板由于自帶USB轉(zhuǎn)TTL模塊,P30口和P31(也就是RX和TX)在設(shè)計(jì)上會(huì)默認(rèn)反接,或者在標(biāo)注上會(huì)反過(guò)來(lái),一定要看開(kāi)發(fā)板原理圖去確認(rèn)。。。ㄟ@個(gè)就是我遇到的問(wèn)題)

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

8#
ID:808611 發(fā)表于 2021-3-30 21:50 | 只看該作者
muzhi 發(fā)表于 2021-3-30 21:39
是換行回車(chē)的問(wèn)題嗎?建議把解決方案總結(jié)寫(xiě)出來(lái),方便后來(lái)人

網(wǎng)上給的代碼一般都是沒(méi)有問(wèn)題的,AT指令后面加\r\n沒(méi)啥問(wèn)題,要注意檢查接線
回復(fù)

使用道具 舉報(bào)

9#
ID:207421 發(fā)表于 2021-3-30 23:31 | 只看該作者
ESP8266模塊的波特率一般都是 115200
你不改成 9600 沒(méi)發(fā)通訊,如下:
AT+CIOBAUD=9600
AT+RST
回復(fù)

使用道具 舉報(bào)

10#
ID:569384 發(fā)表于 2021-3-31 16:43 | 只看該作者
ESP-01S模塊默認(rèn)波特率是115200,單片機(jī)也要用115200波特率來(lái)發(fā)指令?梢杂脝纹瑱C(jī)改波特率,但是模塊每次掉電后再上電波特率又會(huì)默認(rèn)115200。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表