Programování sériové linky
Last updated
Last updated
Pro komunikaci po sériové lince s PC, nebo s libovolným dalším zařízením, je třeba vytvořit program, který sériovou linku inicializuje a dále bude odesílat a přijímat požadované zprávy. Zařízení IODA umožňuje incializovat sériovou linku dvěma způsoby, buď pomocí jeho vývodů na konektoru XY, nebo pomocí emulátoru na konektoru microUSB.
Serial je konstruktor z knihovny MBED API, který inicializuje Sériovou linku přímo na vývodech XY konektoru. Abychom mohli takto vytvořit linku mezi zařízením a PC, je potřeba využít TTL převodník, který interpretuje komunikaci na USB.
V programu se nejprve sériová linka inicializuje pomocí třídy Serial z knihovny MBED API. Argumenty konstruktoru jsou jména pinů TX a RX, na kterých se linka inicializuje.
Zařízení IODA umožňuje inicializovat několik sériových linek. Na kterých pinech se tyto linky dají inicializovat se lze dozvědět s dokumentace zařízení v sekci Rozhraní a periférie v oddíle UART/USART. V příkladu jsou místo jmen pinů použita makra SERIALTX a SERIALRX, tyto makra vedou na sériovou linku na pinech Y00 a Y01.
Dále je třeba zvolit baudovou rychlost, která určuje komunikační rychlost linky. To je nejvhodnější provést v sekci init(). Baudová rychlost může být různá, záleží na uživateli a pohybuje se většinou v rozmezí 1200 - 230400 baud. Stejnou rychlost je třeba nastavit na straně počítače při připojení.
Jednoduchý kód pro výpis ''Hello word'' přes sériovou linku.
Zařízení IODA je dále schopné emulovat komunikaci po sériové lince přímo na konektoru microUSB tak ,aby nahradilo standardní sériovou linku a uživateli tak umožnilo komunikovat s PC bez nutnosti použít TTL převodník. Nevýhoda této komunikace je, že při každém restartu zařízení IODA je nutné zavřít a otevřít COM port, což prakticky znamená odpojit a znovu připojit sériový terminál.
Konstruktor USB linky může zůstat bez parametrů. V takovém případě se dosadí defaultní hodnoty. Nevýhodou může být to, že poslední parametr ''connect_blocking'' je dosazen za ''true'', což znamená, že zařízení nepokračuje ve vykonávání kódu, dokud není připojeno USB a konstruktor je blokující. To může být v mnoha případech nežádoucí.
Vhodnější může být volba, aby USB konstruktor neblokoval kód, přičemž do parametrů konstruktoru je nutné připsat i produktové kódy zařízení. Konstruktor bude mít poté podobu.
V případě USB se narozdíl od sériové linky nenastavuje baudová rychlost.
Velmi jednoduchý kód pro výpis ''hello world'' pomocí USB může vypadat například takto