Hirdetés

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

  • Janos250

    őstag

    válasz Dißnäëß #16687 üzenetére

    "Ha pedig önkényesen mégis megadom azt neki ugyanúgy, mint az SW verziónál (ahol viszont kéri), hibára fut a fordító."
    Ne add meg neki, de kösd be!

    Mivel csak ESP32-n használtam az SPI-t, ESP8266-on nem, ezért csak általánosságban tudok hozzászólni.
    Az általad linkelt képen látszik, hogy két SPI van. Zölddel vannak jelölve.
    Általánosságban az SPI használ MOSI , MISO (Master Out Slave Input, a másik fordítva), és egy CLK clock jelet. Az ESP a master, a kijelző, stb. a slave. Van egy-egy CS (chip select láb). Be lehet úgy állítani, hogy a CS-t is a hardver kezelje, általában ez a default. Viszont ezzel az a baj, hogy akkor csak egy slave használható, holott az SPI több slave kezelésére alkalmas. Ebben az esetben minden slave-nek külön CS láb kell, és ezeket szoftverből kell vezérelni, hogy most éppen kihez akarsz szólni. Mivel nálad egyetlen slave (a kijelző) van, ezért célszerű a default választás. Általában a könyvtárakban, ha olyan konstruktort használunk, amiben nem szerepel a CS, akkor a default lesz érvényes, és a hw kezeli. Esetedben ez azt jelenti, hogy HSPI esetén a GPIO15 lesz automatikusan a CS, míg VSPI esetén a CMD-vel jelzett láb. Ha pl. kijelzőt hajtunk meg, akkor vissza irány (MISO) nem is kell. A H-nak, V-nek ne akarj értelmet tulajdonítani, tekintsd egyszerűen egy megkülönböztető jelnek.

    Az, hogy hány lábat kell a konstruktorban megadni, az még nem jelenti azt, hogy a többi lábat nem kell megadni.
    Itt úgy látom, a CS mindig megadandó, nincs default.
    Természetesen a /* clock=*/ 14, /* data=*/ 12, bármelyiket használod is, mindenképpen bekötendő akkor is, ha a konstruktorban nem adod meg, hanem defaultként kezeli.

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