Hirdetés

Új hozzászólás Aktív témák

  • Janos250

    őstag

    válasz Teasüti #7188 üzenetére

    Mélyrehatóan nem, de valami:

    Az ESP32-n a HardwareSerial.cpp fájlba kell belenyúlnod. (hardware\espressif\esp32\cores\esp32)
    A Stream osztály virtuális függvényként megadja, hogy minden gyerekének (pl az egyes processzorok serialjei) kötelezően miket kell tartalmaznia,
    ezzel nagyjából biztosít egy bizonyos kompatibilitást.
    (class HardwareSerial: public Stream)

    int HardwareSerial::read(void)
    {
    if(available()) {
    return uartRead(_uart);
    }
    return -1;
    }

    }

    size_t HardwareSerial::write(uint8_t c)
    {
    uartWrite(_uart, c);
    return 1;
    }

    Mint látható, használják az esp32-hal-uart.c fájlból az uartRead-et az meg a hardware\espressif\esp32\tools\sdk\lib\xQueueReceive.a assembly fájl tartalmát.

    Érdemes még egy pillantást vetni a HardwareSerial.cpp fájl include-ok utáni első sorára: HardwareSerial Serial(0);
    Itt példányosítja előre a mi beavatkozásunk nélkül "Serial" néven a 0-ás UART-hoz kapcsolva. Ezért nem kell őt nekünk példányosítani.

Új hozzászólás Aktív témák