Fórum témák
» Több friss téma |
Fórum » Nextion érintőképernyős HMI, UART kommunikációval
Témaindító: Lamprologus, idő: Máj 5, 2016
Témakörök:
Szia,
Bővebben: Link
Nekem is megjött a logikai analizátorom, megtaláltam a hibát az elküldött szövegben, most már 90% os a siker. De a következő a kérdésem ez az elküldött jelsorozatban problémás lehet e t0.txt="1234" 255 255 255 13 10
Ezt elfogadja de a következőket már nem. Illetve 255 255 255 13 10 után sem semmit. Találkozott e valaki ezzel a problémával?
A három 255-ös utáni karakterek a következő parancshoz fognak tartozni, pontosabban azzal fognak kezdődni. Mivel így nem kezdőthet parancs, az első ilyen után nem fog látszólag reagálni semmire. Mint azt tapasztaltad is.
Vedd ki a 3 db. 255 utáni 13 és 10 -es karaktereket (CR, LF).
Köszönöm, de a fordító automatikusan küldi a CR LF parancsokat (Atmel).
Nem tudod, hogy a Picbasic is csinál ilyet?
Gondolom van olyan parancs (nem ismerem a fordítót), ami azt küldi ki amit szeretnél és nem többet.
Köszönöm a segítséget minden működik. Találtam egy parancsot " SEROUT " ez jó ötlet volt.
Sziasztok!
Egy projekthez használom a Nextion GPIO portját. Mivel az editor csak az UART kimenetet mutatja (gondolom), így manuálisan a program futása közben megkértem egy változót, hogy mutassa a pio0 aktivitását. Az 0-át mutatott, holott 1-et kellett volna. Hol rontottam el? Amit csináltam; cfgpio 1,2,0 - 1-es portot akarom kapcsolni kimenetre, az utolsó 0 helyén kellene lennie egy változónak, de ezt nem értettem és mivel a példában is az volt, azért írtam én is. Óra kapcsolja be: pio1=1, illetve egy másik idővel ki: pio1=0 Utóirat; Csináltam egy próbát; Editorban a beviteli mezőbe direktbe írtam be: pio1=1 Majd pedig n0.val=pio1 n0 értéke változatlan 0 volt.
Valójában már mindegy. Mint kérdéseim legnagyobb részét, ezt is magam tapasztaltam ki és oldottam meg.
Sziasztok!
Megtudná nekem valaki mondani, hogy ennek a kijelzőnek hogyan kell beállítani a baudrate-jét? Jelenleg 115200-ren van. Szerintem ez egy kicsit sok egy mikrovezérlőnek.
Köszönöm!
Ezt gondolom akár minden indításnál el is küldhetem neki mikrovezérlőről?
Nem. Ezt a parancsot elég egyszer küldeni, megjegyzi. A
baud=9600 (nincs s betű a végén) kikapcsolásig marad érvényben. Magyarán 115200-as sebességgel egyszer elküldöd neki a bauds=9600 parancsot és le is van tudva. A legegyszerűbben ez egy USB-UART átalakítóval oldható meg. A hozzászólás módosítva: Okt 7, 2018
Megvan szerencsére minden eszközöm hozzá, kivéve a soros terminált, ami esetlegesen a begépelt szöveget hexában küldi ki, vagy miként szokás ezzel az eszközzel terminálból kommunikálni?
Terminal-ban begépeled a szöveget, majd elküldöd. Nem teljesen értem, mit értex hexa alatt. Az, hogy te milyen formátumban pötyögöd be a parancsot, teljesen mindegy. 65, 0x41 vagy 'A' egyre megy, az UART-nak van egy kötött formája, a Terminal program vagy az USB-UART átalakító meghajtó programja átkonvertála azt UART-ra.
Egy a lényeg, minden parancs után három 0xFF-et kell küldeni, ez a parancs lezáró karakter sor.
Sikerült.
Az a baj, hogy a terminál maga nem azt fogja érzékelni, hogy te beírod a végén, hogy 255, vagy 0xFF. Hanem a karakterek ascii kódjának hexa értékét küldi ki soroson. Ezért helyesen ez baud=9600˙˙˙. Na hát ez is meg lett fejtve, átírta végül is. Köszönöm a segítséget!
Ez teljes mértékben programfüggő. Egyébként én is meguntam a vacakolást az ilyenek miatt, inkább írtam magamnak egy Terminal programot. Három formátumban tudom megadni az elküldendő adatot és választhatok, milyen karaktersort illesszen az adat végére.
A hozzászólás módosítva: Okt 7, 2018
Ötletes! Nagyban megkönnyíti a programírást is.
Még egy kérdésem lenne: Fontgenerátor. Látom, te viszonylag sokat foglalkozol ezzel a kijelzővel. Nálad is szokta furán megjeleníteni a karaktereket? Értem ez alatt, hogy pl. néha az M betű kisebb mint a többi betű? Eddig egyféle fontot sikerült relatíve normálisan megjeleníttetni vele. Ez az én bénaságom, vagy maga a generátor generálja hibásan a karaktereket?
A betűkkel és számokkal alapvető probléma van, nincs élsimítás. Nagy karaktereknél ez nem probléma, kicsiknél hatványozottan jelentkezik. Maga a Font Generátor sincs mindig a helyzet magaslatán. Tegyük hozzá azt is, hogy maga a betű a látszat ellenére igen összetett dolog, nem csoda, ha a Font Generator itt-ott téveszt. Nincs mit tenni, ez ilyen.
Én ezt úgy szokam áthidalni, hogy ahol csak lehet, képeket használok. Képszerkesztőben elkészítem a szövegeket (pl. a hét napjai), mentek belőle hét képet és a Nextion-ban azokat váltogatom, szükség szerint. Ez persze pazarló dolog, mert a képet a legnyobb szöveghez kell igazítani (csütörtök) de ha a kijelző memóriájába belefér, miért ne? Cserébe sokkal szebb az egész. Ez persze dinamikus szövegnél bukta, de statikus vagy ésszerű mennyiségű változatnál járható. Sőt, ha a szöveg egyáltalán nem változik, érdemes a háttérképre menteni, így egy képpel megvan a háttér és a szöveg is, ez viszont kellemesen takarékos megoldás.
Én most találtam egy fontot, amit egészen jól megjelenít. Legalább is nekem nagy problémám nincs vele eddig.
Lásd mellékletek, az élsimítás nagyon hiányzik.
Írsz Nextion editorban egy programot, amivel be tudod állítani az átviteli sebességet!
Nem kell USB-UART átalakítóval, terminál programmal kínlódni!
Egy Terminal programmal teljeskörűen tesztelhető a kijelző, nem nevezném kínlódásnak. Kicsit gyorsabb, mint minidg újraírni egy kontroller programját, instant eredmények vannak.
Idézet: Na ezt nevezem én "kínlódásnak. " „Megvan szerencsére minden eszközöm hozzá, kivéve a soros terminált, ami esetlegesen a begépelt szöveget hexában küldi ki, vagy miként szokás ezzel az eszközzel terminálból kommunikálni?”
Addig, amíg meg nem találod a megfelelő programot. Egyszer kell rászánni az időt, nem ágyúval menni a verébre.
Nos igen. Akik engem itt a fórumon ismernek, azok tudják, hogy szinte minden tudás morzsát igyekszem magamtól elsajátítani: olvasva, interneten keresgélve, kísérletezve, vagy kérdezve. Beleugrottam ebbe a projektbe, de úgy gondolm, hogy sok lesz belőle a tanulság. Kicsi, apró léptek. Például most meg kell tanulnom két változó értékét úgy összevonni, hogy abból egy ezres helyiértékű számot kapjak meg, utána pedig azt, hogy hogyan vigyek be a nextion segítségével tizedes törtet.
Tizedes törtet szövegként!
A hozzászólás módosítva: Okt 7, 2018
Én ezeket a kijelzőket, mint kijelzőt használom. Nem írok bele semmilyen programot, mindent a kontrollerrel végeztetek el, a kijelzőn csak az eredmények jelennek meg. Fogadni csak érintés adatot fogadok, kb. így a legegyszerűbb kezelni, nem kell keresni, hol hibás a program, legalább a kijelző kizárva. Szerintem.
A Nextion-nek úgy vettem észre, hogy nagyon jó a debug felülete. Látható, hogy mikor mit küld ki sorosra, még fel sem kell tölteni rá a programot, ezt kimondottan szeretem benne. Ezt igazából csak feldolgozni kell a mikrovezérlővel. De természetesen megoldható lenne úgy is, ahogy Te mondod.
|
Bejelentkezés
Hirdetés |