Search
Cílem úlohy je získat zkušenost s využitím sériového portu pro komunikaci aplikace v počítači s programem na desce Nucleo a práci s více vlákny pro zpracování více zdrojů událostí.
Binární obraz funkční aplikace pro Nucleo pro testování a funkce pro čtení ze sériového portu s timeoutem (prg_serial_nonblock) prg-hw09.zip
prg_serial_nonblock
Pro korektní ukončení programu (po stisku klávesy 'q') je nutné ukončit načítání znaku ze seriového portu, proto realizujte načítání v tzv. non-bloking režimu s využitím poll funkce, implementace můžete založit na modulu prg_serial_nonblocking, např. viz serial_nonblock.
poll
prg_serial_nonblocking
Realizujte programy pro desku Nucleo STM32F446RE a program pro ovládací počítač, kterým bude řízeno blikání LED na desce Nucleo seriovou komunikací (115200 bps, 8 bitů, bez parity). Úloha se tak skládá ze dvou částí: 1) programu pro Nucleo a 2) programu pro ovládací počítač.
Ovládací program:
“\rLED %3s send: '%c' received: '%c', T = %4d ms, ticker = %4d”
kde jednotlivé řidící znaky formátování znamenají:
%3s
%c
%4d
Pro výpis využijte přepisování řádku znakem '\r'. Po odeslaní znaku 's' a 'e' je stav LED (on nebo off) nastaven až po přijeti potvrzovacího znaku 'a'.
on
off
Nucleo program:
mbed.org
attach
Jednobytový komunikační protokol:
main()
stdin
Dále Nucleo v případě, že periodicky bliká LED, vysílá znak 'x' při rozsvícení LED a znak 'o' při zhasnutí led.
Program pokud možno realizujte na cvičení, nahrajte do odevzdávacího systému. Funkčnost programu ověří učitel na cvičení nebo na dalším cvičení.
mbed
hw09-mbed.cpp
hw09-cross.c
hw09-main.c