- ST-LINK V2
- STM32CubeMX
- Potrebné materiály
- Schéma zapojenia a zapojenia
- Vytvorenie a napálenie programu do STM32 pomocou Keil uVision a ST-Link
- Výstup Keil programovanej dosky STM32
- Program
Mikrokontroléry STM32, ktoré používajú architektúru ARM Cortex M, sa teraz stávajú populárnymi a používajú sa v mnohých aplikáciách kvôli svojim vlastnostiam, nákladom a výkonu. V našich predchádzajúcich tutoriáloch sme programovali STM32F103C8 pomocou Arduino IDE. Programovanie STM32 s Arduino IDE je jednoduché, pretože existuje veľa knižníc, ktoré sú k dispozícii pre rôzne senzory na vykonávanie akýchkoľvek úloh, stačí tieto knižnice do programu pridať. Toto je jednoduchý postup a nemusíte sa hlboko učiť o procesoroch ARM. Teraz sa teda dostávame k ďalšej úrovni programovania, ktorá sa nazýva programovanie ARM. Týmto môžeme nielen vylepšiť našu štruktúru kódu, ale tiež môžeme ušetriť miesto v pamäti nepoužívaním nepotrebných knižníc.
Spoločnosť STMicroelectronics predstavila nástroj s názvom STM32Cube MX, ktorý generuje základný kód podľa periférií a vybranej dosky STM32. Nemusíme sa preto starať o kódovanie základných ovládačov a periférií. Ďalej je možné tento vygenerovaný kód použiť v aplikácii Keil uVision na úpravy podľa požiadaviek. A nakoniec je kód vypálený do STM32 pomocou programátora ST-Link od STMicroelectronics.
V tomto výučbe sa naučíme programovať STM32F103C8 pomocou Keil uVision a STM32CubeMX jednoduchým projektom prepojenia tlačidla a LED s doskou STM32F103C8 Blue Pill. Vygenerujeme kód pomocou STM32Cube MX, potom ho upravíme a nahráme do STM32F103C8 pomocou Keil uVision. Predtým, ako sa dostaneme do podrobností, najskôr sa dozvieme o programátore ST-LINK a softvérovom nástroji STM32CubeMX.
ST-LINK V2
ST-LINK / V2 je debugger v obvode a programátor pre mikroradičov STM8 a STM32. Pomocou tohto ST-LINK môžeme nahrať kód do STM32F103C8 a ďalších mikrokontrolérov STM8 a STM32. Na komunikáciu s akýmkoľvek mikrokontrolérom STM8 alebo STM32 umiestneným na aplikačnej doske sa používajú rozhrania single wire interface module (SWIM) a JTAG / serial wire debugging (SWD). Pretože aplikácie STM32 používajú na komunikáciu s integrovaným vývojovým prostredím Atollic, IAR, Keil alebo TASKING rozhranie USB s plnou rýchlosťou, môžeme tento hardvér použiť na programovanie mikrokontrolérov STM 8 a STM32.
Vyššie je obrázok adaptéra ST-LINK V2 od spoločnosti STMicroelectronics, ktorý podporuje celý rad ladiacich rozhraní SWD STM32, jednoduché 4-vodičové rozhranie (vrátane napájania), rýchle a stabilné. Je k dispozícii v rôznych farbách. Telo je vyrobené z hliníkovej zliatiny. Má modrú LED indikáciu, pretože slúži na pozorovanie pracovného stavu ST-LINK. Názvy pinov sú na škrupine zreteľne označené, ako vidíme na obrázku vyššie. Môže byť prepojený so softvérom Keil, kde je možné program flashovať do mikrokontrolérov STM32. Pozrime sa teda v tomto návode, ako je možné tento programátor ST-LINK použiť na programovanie mikrokontroléra STM32. Na nasledujúcom obrázku sú znázornené kolíky modulu ST-LINK V2.
Poznámka: Pri prvom pripojení systému ST-Link k počítaču. Potrebujeme nainštalovať ovládač zariadenia. Ovládače zariadení nájdete podľa tohto operačného systému na tomto odkaze.
STM32CubeMX
Nástroj STM32CubeMX je súčasťou STMicroelectronics STMCube. Tento softvérový nástroj uľahčuje vývoj zjednodušením vývojového úsilia, času a nákladov. Súčasťou STM32Cube je STM32CubeMX, čo je grafický softvérový konfiguračný nástroj, ktorý umožňuje generovanie inicializačného kódu C pomocou grafických sprievodcov. Tento kód je možné použiť v rôznych vývojových prostrediach, ako je keil uVision, GCC, IAR atď. Tento nástroj si môžete stiahnuť z nasledujúceho odkazu.
STM32CubeMX má nasledujúce funkcie
- Pripnúť riešenie konfliktov
- Pomocník pri nastavovaní hodín
- Kalkulačka spotreby energie
- Utilita vykonávajúca periférnu konfiguráciu MCU, ako sú piny GPIO, USART atď
- Obslužný program vykonávajúci periférnu konfiguráciu MCU pre zásobníky middlewaru ako USB, TCP / IP atď
Potrebné materiály
Hardware
- STM32F103C8 modrá pilulka
- ST-LINK V2
- Tlačidlo
- LED
- Nepál
- Prepojovacie drôty
Softvér
- Nástroj na generovanie kódu STM32CubeMX (odkaz)
- Keil uVision 5 (odkaz)
- Ovládače pre ST-Link V2 (odkaz)
Schéma zapojenia a zapojenia
Ďalej je uvedená schéma zapojenia pre jednoduché pripojenie LED k doske STM32 pomocou tlačidla.
Prepojenie medzi ST-LINK V2 a STM32F103C8
Tu je doska STM32 Blue Pill napájaná z ST-LINK, ktorý je pripojený k USB portu počítača. STM32 teda nemusíme napájať osobitne. Nasledujúca tabuľka zobrazuje spojenie medzi ST-Link a modrou tabletkou.
STM32F103C8 |
ST-Link V2 |
GND |
GND |
SWCLK |
SWCLK |
SWDIO |
SWDIO |
3V3 |
3,3 V |
LED a tlačidlo
LED dióda slúži na indikáciu výstupu z dosky Blue Pill po stlačení tlačidla. Anóda LED je pripojená ku kolíku PC13 dosky Blue Pill a katóda je uzemnená.
Je pripojené tlačidlo, ktoré poskytuje vstup na kolík PA1 dosky Blue Pill. Musíme tiež použiť pull-up rezistor s hodnotou 10k, pretože pri uvoľnení tlačidla by kolík mohol plávať bez akéhokoľvek vstupu. Jeden koniec tlačidla je pripojený k zemi a druhý koniec k pinu PA1 a pull up odpor 10 k je tiež pripojený k 3,3 V dosky Blue Pill.
Vytvorenie a napálenie programu do STM32 pomocou Keil uVision a ST-Link
Krok 1: - Najskôr nainštalujte všetky ovládače zariadení pre ST-LINK V2, softvérové nástroje STM32Cube MX a Keil uVision a nainštalujte potrebné balíky pre STM32F103C8.
Krok 2: - Druhým krokom je Open >> STM32Cube MX
Krok 3: - Potom kliknite na Nový projekt
Krok 4: - Po tomto vyhľadávaní a výbere nášho mikrokontroléra STM32F103C8
Krok 5: - Teraz sa objaví náčrt pin-out modelu STM32F103C8, tu môžeme nastaviť konfiguráciu pinov. Môžeme tiež zvoliť naše piny v sekcii periférie podľa nášho projektu.
Krok 6: - Môžete tiež kliknúť priamo na špendlík a zobrazí sa zoznam. Teraz vyberte požadovanú konfiguráciu špendlíka.
Krok 7: - Pre náš projekt sme vybrali PA1 ako GPIO INPUT, PC13 ako GPIO OUTPUT & SYS debug ako SERIAL WIRE, tu iba pripájame piny ST-LINK SWCLK & SWDIO. Vybrané a nakonfigurované piny sa zobrazia v ZELENEJ farbe. Môžete si to všimnúť na nasledujúcom obrázku.
Krok 8: - Ďalej na karte Konfigurácia vyberte GPIO a nastavte konfigurácie pinov GPIO pre piny, ktoré sme vybrali.
Krok 9: - Ďalej v tomto konfiguračnom poli kolíka môžeme nakonfigurovať štítok používateľa pre piny, ktoré používame, to znamená používateľom definované názvy pinov.
Krok 10: - Potom kliknite na Project >> Generate Code .
Krok 11: - Teraz sa zobrazí dialógové okno nastavenia projektu. V tomto poli vyberte názov a umiestnenie projektu a vyberte vývojové prostredie. Používame Keil, takže vyberte MDK-ARMv5 ako IDE.
Krok 12: - Next pod Code Generator karte, vyberte skopírovať iba potrebné súbory knižnice a potom kliknite na tlačidlo OK.
Krok 13: - Teraz sa zobrazí dialógové okno generovania kódu. Vyberte Otvoriť projekt, aby ste automaticky otvorili vygenerovaný kód projektu v Keil uvsion.
Krok 14: - Teraz sa nástroj Keil uVision otvára s našim vygenerovaným kódom v STM32CubeMx s rovnakým názvom projektu s potrebnou knižnicou a kódmi, ktoré sú nakonfigurované pre kolíky, ktoré sme vybrali.
Krok 15: - Teraz stačí zahrnúť logiku, aby sme vykonali nejakú akciu na výstupnej LED (pin PC13), keď je tlačidlo stlačené a uvoľnené na vstupe GPIO (pin PA1). Takže vyberte náš program main.c, ktorý obsahuje niektoré kódy.
Krok 16: - Teraz pridajte kód do cyklu while (1) , pozrite si obrázok nižšie, kde som túto časť zvýraznil, aby sa kód spustil nepretržite.
while (1) {if (HAL_GPIO_ReadPin (BUTN_GPIO_Port, BUTN_Pin) == 0) // => Je stlačené tlačidlo DETECTS {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 1); // Aby bol výstup vysoký, keď stlačíte tlačidlo} else {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 0); // Aby bol výstup nízky po stlačení tlačidla}}
Krok 17: - Po dokončení úprav kódu kliknite na ikonu Možnosti pre cieľ na karte ladenie a vyberte ladiaci program ST-LINK.
Tiež kliknite na tlačidlo Nastavenia a potom na karte Preberanie Flash začiarknite políčko Obnoviť a spustiť a kliknite na tlačidlo „ok“.
Krok 18: - Teraz kliknite na ikonu Obnoviť a znova vytvorte všetky cieľové súbory.
Krok 19: - Teraz môžete pripojiť ST-LINK k počítaču s pripravenými spojeniami obvodov a kliknúť na ikonu STIAHNUTIE alebo stlačiť F8, aby sa na STM32F103C8 zobrazil kód, ktorý ste vygenerovali a upravili.
Krok 20: - Môžete si všimnúť blikajúcu indikáciu v spodnej časti okna okna uVision.
Výstup Keil programovanej dosky STM32
Teraz, keď stlačíme tlačidlo, LED sa rozsvieti a keď ho pustíme, LED zhasne.
Program
Hlavná časť, ktorú sme pridali do vygenerovaného programu, je uvedená nižšie. Tento kód nižšie je potrebné zahrnúť do while (1 ) programu main.c generovaného programom STM32CubeMX. Môžete sa vrátiť späť na krok 15 až krok 17, aby ste sa dozvedeli, ako by malo byť pridané v programe main.c.
while (1) {if (HAL_GPIO_ReadPin (BUTN_GPIO_Port, BUTN_Pin) == 0) // => Je stlačené tlačidlo DETECTS {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 1); // Aby bol výstup vysoký, keď stlačíte tlačidlo} else {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 0); // Aby bol výstup nízky po stlačení tlačidla}}
Celý proces vytvárania a nahrávania projektu na dosku STM32 je tiež vysvetlený vo videu na konci. Ďalej je uvedený kompletný kód súboru main.c vrátane vyššie uvedeného kódu.
Ďalej tu nájdete našu kompletnú sadu projektov STM32.