STM32F4discovery a klávesnice PS2

Na jaře 2015 jsem nastoupil do nového zaměstnání a musel jsem trochu nastudovat programování ARM v jazyku C. Zdroje co tady najdete berte tedy jako práci začínajícího programátora C.

Používám dva discovery kity: STM32F4 a STM32F429. Jako vývojové prostředí používám Em::Blocks. První co jsem řešil byl základní vstup výstup pro testovací výpisy a nějaké ovládání. Nadefinovány mám tedy dva targety. Target Debug nastavuje funkce obdobné <stdio> na usart. Piny usartu se definují v Build Options -> Compiler settings -> #defines (třeba USTDIO_PINS_PA2PA3). Všechny varianty pinů a z toho i usartu jsou uvedeny v souboru /FILES/StdioUsart/StdioUsart.h. Target Release je připraven na dobu až nějaký můj program bude dávat smysl i bez testovacího vstupu/vystupu.

V PC jako terminálový program pro testovací vstup/výstup používám putty. Usart mám připojený na klasický seriový port přes převodník MAX232.

A teď už k vlastnímu projektu. Napsán a testovován byl na STM32F4 discovery s připojenou klasickou PS/2 klávesnici. Našel jsem nějaké projekty třeba tady nebo tady, ale ani jeden neřešil výstup (ovládání LED). To mě vedlo k napsání vlastního ovládaní PS2 klávesnice. Program mění každou vteřinu rozsvícení led na klávesnici a na usartu vypisuje přijate scankody z klávesnice. Nepředává dál prefixy, ale scankody ještě před výpisem převede na šestnáctibitovou hodnotu a prefixy nastavují jednotlivé bity (0xf0 -> bit8, 0xe0 -> bit9 a 0xe1-> bit10).

Výstup na PS2 klávesnici využívá malý FIFO bufer, aby se nezdržoval hlavní program.

Funkční SysTick je nezbytý pro vysílání dat do PS2 klávesnice a je také využíván pro hlídání případného selhání komunikace.

Kompletní zazipovany projekt je zde.

Napsat komentář

Vaše emailová adresa nebude zveřejněna.

+ eighty one = 87

Můžete používat následující HTML značky a atributy: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>