Stránka 1 z 1

Mikrokontrolér nepřijímá data odeslaná zařízením ESP8266.

Napsal: 06 zář 2021, 10:04
od Arthur
Nedávno jsem se dozvěděl, že APP a mikrokontrolér komunikují prostřednictvím ESP8266, ESP8266 je server, APP může posílat data do ESP8266, ale ESP8266 nemůže posílat do mikrokontroléru. V čem je problém, prosím? Níže je uveden kód.

Kód: Vybrat vše

void UartConfiguration()
{
    TMOD |=0x20;      //Režim 2
    TH1=0xfd;           //Přenosová rychlost 9600
    TL1=0xfd;           //
    PCON=0x00;      //Žádné zdvojnásobení přenosové rychlosti
    SCON=0x50;      //
    EA=1;           //
    ES=1;           //
    TR1=1;          //
    TI=1;
    }
void connect_init()
{
    printf("AT+CIPMUX=1\r\n");
    DelayMs(30000);
    printf("AT+CIPSERVER=1,8080\r\n");
}
//Přepsání funkce putchar()
char putchar(char ch)
{
    ES=0;
    SBUF=ch;
    while(TI==0);
    TI=0;
    ES=1;
    return 0;
}
void ESP8266_init()
{
    UartConfiguration();
    TI=0;             //Čekání na dokončení expedice
    connect_init(); 
}
void ESP_UART() interrupt 4
{
    static uchar i=0;
    if(RI==1)
    {
         RI=0;  
         Recive_table[i]=SBUF; 
         led3 = ~led3;
         sendByte(Recive_table[i]);
         i++;         
         if((Recive_table[i-1]=='\n'))
         {
                Recive_table[i]='\0';
                i=0; 
         }
    }
    else
        TI=0;
}

Re: Mikrokontrolér nepřijímá data odeslaná zařízením ESP8266.

Napsal: 06 zář 2021, 16:18
od kiRRow
Vůbec nechápu na co se chceš zeptat. Jaký APP a který mikrokontrolér komunikují jak a čím s ESP8266 ??? Ty mi chceš tu kouli uvařit, ne ?

Nebyla tím spíš myšlena architektura klient-server? V takovém případě, pokud chceš zaslat nějaká data ze serveru do klienta, tak je na klientovi, aby si o tyto data na serveru zažádal - naopak to nefunguje.

Re: Mikrokontrolér nepřijímá data odeslaná zařízením ESP8266.

Napsal: 15 zář 2021, 10:26
od Arthur
ESP8266 komunikuje s mikrokontrolérem STC89C51.

Re: Mikrokontrolér nepřijímá data odeslaná zařízením ESP8266.

Napsal: 15 zář 2021, 17:40
od pavel1tu
Arthur píše:
15 zář 2021, 10:26
ESP8266 komunikuje s mikrokontrolérem STC89C51.
STC8 jsou čínské čipy, osobně jsem je vypustil, podpora nic moc, nástroje nic moc, české forum asi není

Ale pokud máš ESP nastavené jako SERVER, tak pomocí něj nelze žádného "klienta" ovládat, nic do něj posílat - vyhledej si jak funguje SERVER-CLIENT
https://cs.wikipedia.org/wiki/Klient-server
Funguje to jednosměrně - klient se připojí k serveru a vyžádá si co chce - server mu odpoví
Výhoda je, že se k serveru může připojovat více klientů

stačí ?

Re: Mikrokontrolér nepřijímá data odeslaná zařízením ESP8266.

Napsal: 22 zář 2021, 20:35
od peterple
STC89C51 síce google vedie na čínske stránky, ale je to len ďalší klon 8051. Aj z toho kódu je to zrejmé.
Ale je to len taký fragment, takže zistiť prečo to neprijíma z toho kódu nie je možné. Je tam vidno zopár funkcií na prácu so sériovým rozhraním. Niečo vyzerá na odosielanie AT príkazov.
A rutina ktorá prijíma znaky ich posiela nazad, ukladá do buffera, a čaká na klávesu LF. A ešte bliká ledkou na nejakom porte.
Je napísaná humpolácky lebo sa tam nekontroľuje pretečenie buffera.

To je nejaké zadanie do školy? Lebo zmysel v tom nevidím žiaden.