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

Odpovědět
Arthur
Příspěvky: 39
Registrován: 02 čer 2021, 03:37
Reputation: 0

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

Příspěvek od Arthur » 06 zář 2021, 10:04

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;
}

Uživatelský avatar
kiRRow
Příspěvky: 1152
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

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

Příspěvek od kiRRow » 06 zář 2021, 16:18

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.

Arthur
Příspěvky: 39
Registrován: 02 čer 2021, 03:37
Reputation: 0

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

Příspěvek od Arthur » 15 zář 2021, 10:26

ESP8266 komunikuje s mikrokontrolérem STC89C51.

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

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

Příspěvek od pavel1tu » 15 zář 2021, 17:40

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čí ?
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

peterple
Příspěvky: 156
Registrován: 22 zář 2021, 20:20
Reputation: 0

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

Příspěvek od peterple » 22 zář 2021, 20:35

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.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 12 hostů