找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3195|回復(fù): 6
收起左側(cè)

esp8266與51單片機(jī)通信遇到一些問題

[復(fù)制鏈接]
ID:335695 發(fā)表于 2018-6-21 00:47 來自觸屏版 | 顯示全部樓層 |閱讀模式
用的51是普眾科技的開發(fā)版,esp8266波特率也調(diào)到4800.RX,TX等鏈接正常。
程序如下希望大神能幫我看看
#include<reg52.h>           
   #define uchar unsigned char     
#define uint unsigned int      
void delay1ms(void)   //誤差 0us
{    unsigned char a,b,c;  
  for(c=1;c>0;c--)
   for(b=142;b>0;b--)  
  for(a=2;a>0;a--);}
void sendByte(uchar b)  //發(fā)送一個(gè)字節(jié)
{  SBUF = b;  while(!TI);  TI=0;}
//發(fā)送字符串
void sendString(uchar *s){  
while(*s != '\0') //字符串默認(rèn) 結(jié)尾'\0',以此來判斷字符串的結(jié)束  
{    sendByte(*s);    s++;  }}
//初始化ESP8266WiFi模塊
void initEsp(){  uint a;  SCON = 0x50;    //8位數(shù)據(jù),可變波特率
TMOD = 0x20;    //設(shè)置定時(shí)器1工作方式2
TL1 = 0xf3;     //設(shè)置定時(shí)器初值,波特率為4800
TH1 = 0xf3;
ET1 = 0;        //禁止定時(shí)器1中斷       
ES=1;                                                //打開接收中斷
TR1 = 1;        //啟動(dòng)定時(shí)器1
  EA = 1;
  for (a=0; a<50000; a++);      //延時(shí)幾秒,讓模塊有時(shí)間啟動(dòng)  
sendString("AT+CWMODE=1\n");      
   for (a=0; a<50000; a++);      //延時(shí)幾秒,讓模塊有時(shí)間啟動(dòng)  
sendString("AT+RST\n");  //重啟生效
   for (a=0; a<50000; a++);      sendString("AT+CIPMUX=1\n"); //啟動(dòng)多連接  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");     //服務(wù)器超時(shí)時(shí)間設(shè)置
RI=0;
ES=1;   //初始化完成,串行口中斷打開}
void Datatransfer ()       
{  uint a;  
SCON = 0x50;    //8位數(shù)據(jù),可變波特率
  TMOD = 0x20;    //設(shè)置定時(shí)器1位16位自動(dòng)重裝模式
  TL1 = 0xf3;     //設(shè)置定時(shí)器初值,波特率為4800  
TH1 = 0xf3;  
ET1 = 0;        //禁止定時(shí)器1中斷  
ES=1;                                                //打開接收中斷  TR1 = 1;        //啟動(dòng)定時(shí)器1
  EA = 1;  
for (a=0; a<20000; a++);  sendString("AT+CIPSTART=0,'TCP','192.168.4.2',5000\n");//建立server,端口為333
  for (a=0; a<20000; a++);  sendString("AT+CIPSEND=0,19\n");//確定發(fā)送的長度
for (a=0; a<20000; a++);  
sendString("Sent to the Android\n");//確定發(fā)送的數(shù)據(jù)       
RI=0;  
ES=1;   //初始化完成,串行口中斷打開                           }
//主函數(shù)  
void  main()  
{  initEsp();             
while(1){           delay1ms() ;
Datatransfer ()        ;  } }      
希望能得到大家的幫助,謝謝
回復(fù)

使用道具 舉報(bào)

ID:330198 發(fā)表于 2018-6-21 08:26 | 顯示全部樓層
遇到啥問題說清楚啊
回復(fù)

使用道具 舉報(bào)

ID:320306 發(fā)表于 2018-6-21 08:43 | 顯示全部樓層
波特率調(diào)到9600試試。。。。。。。。。。。
回復(fù)

使用道具 舉報(bào)

ID:335695 發(fā)表于 2018-6-21 09:22 來自觸屏版 | 顯示全部樓層
就是通信失敗,手機(jī)app檢測不到WiFi模塊發(fā)的信息,之前用串口助手能收到,是不是我C程序有什么問題?
回復(fù)

使用道具 舉報(bào)

ID:303383 發(fā)表于 2018-6-23 14:55 | 顯示全部樓層
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
回復(fù)

使用道具 舉報(bào)

ID:335695 發(fā)表于 2018-6-25 20:10 來自觸屏版 | 顯示全部樓層
zhanghyg 發(fā)表于 2018-6-21 08:26
遇到啥問題說清楚啊

不好意思,第一次發(fā)問題沒有描述清楚,就是我的51單片機(jī)和WiFi模塊串口通信失敗,如果成功我是能在手機(jī)app上收到一個(gè)信息,之前在電腦上的串口助手上面實(shí)現(xiàn)了。WiFi模塊的指令語句就是字符串也沒有問題,rx tx連接也對,我想讓問問是不是程序哪里不對了,謝謝您了
回復(fù)

使用道具 舉報(bào)

ID:120108 發(fā)表于 2018-6-25 22:19 | 顯示全部樓層
你最好是通過串口把單片機(jī)收到的內(nèi)容顯示出來 看看到底有沒有收到數(shù)據(jù)或者是什么樣的數(shù)據(jù)。
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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