Skip to main content

Programujeme STM32 (Ukázka, strana 99)

Page 1

Jako poslední nastavíme obvod SPI2, a to režimu Full-Duplex Slave, a povolíme hardwarové řízení NSS signálu. V nastavení parametrů necháme vše ve výchozím stavu, ale v kartě NVIC Settings povolíme přerušení.

Aktivací obvodu by měly být piny PC2, PC3, PB9 a PB10 automaticky nastaveny do alternativních funkcí MISO, MOSI, NSS a SCK. Pokud je některá funkce nastavena na jiném pinu, přenastavíme ji podržením tlačítka Ctrl a přetáhnutím pinu na jiný. (Piny umožňující stejné nastavení se zvýrazní.) Kompletní nastavení pinů by tedy mělo vypadat následovně.

97 Ukázka elektronické knihy, UID: KOS291875


Nastavení periferií je hotové.

10.2.1.2

Zapojení

Zapojení je tentokrát pracnější než obvykle. Je třeba dát pozor na správné propojení pinů, které by mělo odpovídat následujícímu obrázku.

10.2.1.3

Tvorba programu

Oč náročnější bylo nastavení periferií, o to snazší bude samotný program. 98 Ukázka elektronické knihy, UID: KOS291875


Před nekonečnou smyčkou v hlavním programu vytvoříme dvě pole s dvěma bajty dat. Jedno je určeno pro vysílání obvodem Master, do kterého vložíme hodnoty 0xA1 a 0xA2, druhé pro příjem s nulovými hodnotami pro obvod Slave.

Dále před nekonečnou smyčku umístíme jeden povel k vyslání dat pomocí SPI1. Je to bohužel nutné z důvodu, že při prvním vysílání udělá vysílač před samotným rámcem jeden hodinový impulz navíc, kvůli kterému přijímač data špatně interpretuje. Tento impulz je vytvořen klidovou úrovní pinu před spuštěním komunikace. V samotné smyčce nejprve dáme příkaz SPI2 - obvodu Slave, ať čeká na hodinové signály generované obvodem Master a přijme dva bajty dat v režimu přerušení. Zatímco Slave čeká na data, nastavíme NSS signál na nízkou úroveň, čímž Slave aktivujeme k příjmu. V blokujícím režimu odešleme obvodem Master dva bajty dat a NSS signál vrátíme na vysokou úroveň. Program je připraven k přeložení a ladění. Breakpoint vložíme na podmínku nekonečné smyčky a spustíme. Při prvním zastavení na breakpointu (ještě před tím, než poprvé proběhne kód v nekonečné smyčce) vidíme, že obsah pole přijatých dat je vynulovaný.

Ale po druhém zastavení, tedy po prvním běhu programu uvnitř smyčky, se data v přijímacím poli změní na shodná s vysílacími.

99 Ukázka elektronické knihy


Turn static files into dynamic content formats.

Create a flipbook
Programujeme STM32 (Ukázka, strana 99) by Kosmas-CZ - Issuu