找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

ESP8266配置為STA模式,無法從手機(jī)接收數(shù)據(jù)到51單片機(jī)

[復(fù)制鏈接]
ID:376237 發(fā)表于 2018-12-1 18:15 | 顯示全部樓層 |閱讀模式
大神們,小弟遇到一個(gè)問題,就是用8266接到51單片機(jī)上,想讓手機(jī)和8266同時(shí)連接到一個(gè)網(wǎng)絡(luò),配置為透傳模式,用手機(jī)控制單片機(jī),但現(xiàn)在怎么也不行,只能用串口助手往單片機(jī)發(fā)數(shù)據(jù),手機(jī)發(fā)只能到電腦串口助手上,無法控制單片機(jī)。誰能指教一下!感激不盡
回復(fù)

使用道具 舉報(bào)

ID:317476 發(fā)表于 2018-12-1 21:49 | 顯示全部樓層
單片機(jī)的串口波特率和8266的匹配了嗎?還要注意交叉數(shù)據(jù)線 ,單片機(jī)Tx--8266的RX ,單片機(jī)RX--8266的TX
回復(fù)

使用道具 舉報(bào)

ID:376237 發(fā)表于 2018-12-2 20:14 | 顯示全部樓層
zzzy 發(fā)表于 2018-12-1 21:49
單片機(jī)的串口波特率和8266的匹配了嗎?還要注意交叉數(shù)據(jù)線 ,單片機(jī)Tx--8266的RX ,單片機(jī)RX--8266的TX

波特率改了,連接也沒錯(cuò),就是單片機(jī)對8266的AT發(fā)送出現(xiàn)問題,在電腦串口助手上發(fā)AT指令可以,但是寫在程序里就不行了,很奇怪
回復(fù)

使用道具 舉報(bào)

ID:376237 發(fā)表于 2018-12-2 20:15 | 顯示全部樓層
/*這是我的單片機(jī)程序,我現(xiàn)在讓他為AP模式*/
#include <reg52.h>
#include   <stdio.h>
#include <intrins.h>
typedef unsigned int u16;          
typedef unsigned char u8;
u8 receiveData;//接收數(shù)據(jù)的變量
u16 a;
bit flag=1;
float S=0;
void UsartInit()
{
        SCON=0X50;                        //設(shè)置為工作方式1 0110
        TMOD=0X21;                        //設(shè)置計(jì)數(shù)器工作方式2
        TH1=0XFD;                                //計(jì)數(shù)器初始值設(shè)置,注意波特率是9600的
        TL1=0XFD;
  TH0=0;
  TL0=0;
  TR0=0;
  ET0=1;
  TI=1;//printf往手機(jī)發(fā)數(shù)據(jù),不能少
        TR1=1;                                        //打開計(jì)數(shù)器
  ES=0;
        EA=1;                                //打開總中斷
        TI=1;
        for (a=0; a<50000; a++);//延時(shí)幾秒,讓模塊有時(shí)間啟動(dòng)
        printf ("AT+CWMODE=2\n");
        do{
                if(RI){
                        receiveData=SBUF;//接收緩存器
                        RI=0;
                if(receiveData=='K')
                flag=0;
                                }       
                }while(flag);
        flag=1;
        for (a=0; a<30000; a++);
        printf ("AT+RST\n");
                do{
                if(RI){
                        receiveData=SBUF;//接收緩存器
                        RI=0;
                        if(receiveData=='y')
                                flag=0;
                }       
                }while(flag);
                flag=1;
        for (a=0; a<50000; a++);
        printf ("AT+CIPMUX=1\n"); //
                do{
                if(RI){
                        receiveData=SBUF;//接收緩存器
                        RI=0;
                if(receiveData=='K')
                flag=0;
                                }       
                }while(flag);
        flag=1;
                for (a=0; a<30000; a++);
        printf ("AT+CIPSERVER=1,8080\n"); //
do{
                if(RI){
                        receiveData=SBUF;//接收緩存器
                        RI=0;
                if(receiveData=='K')
                flag=0;
                                }       
                }while(flag);
        flag=1;
        for (a=0; a<30000; a++);
        //RI=0;
        ES=1;                                                //打開串口中斷
}
void main()
{       
        UsartInit();  //        串口初始化
        while(1)
        {
if(receiveData=='1')
        P2=0x00;
if(receiveData=='2')
        P2=0xff;
}

}
  void Usart() interrupt 4
{
         receiveData=SBUF;//接收緩存器
        RI = 0;//清除接收中斷標(biāo)志位
}
回復(fù)

使用道具 舉報(bào)

ID:466841 發(fā)表于 2019-4-19 14:37 | 顯示全部樓層
你好,只要線沒接錯(cuò),單片機(jī)直接讀串口就可以了啊,我用手機(jī)發(fā)送至單片機(jī)可以,但是單片機(jī)無法發(fā)送至手機(jī),
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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