====== Vytvoření projektu ====== V této sekci naleznete postup vytvoření projektu pro procesory řady ST v programu Keil uVision 5, kompilaci a nahrání programu blikáme s LED ===== Založení projektu ===== Postup vytvoření nového projektu - Nový projekt založíme přes menu **Project -> New uVision Project**, kde následně vybereme umístění, kde bude projekt uložen. - Vybereme procesor podle aplikace, v našem případě **STM32F401RE** nebo **STM32F446RE** - V okně **Manage Run-Time Environment** zaškrtneme ''CMSIS -> Core'' a ''Device -> Startup'' - V okně **Options for Target** v záložce **C/C++ (AC6)** zvolíme překladač pro jazyk C ''c99'' - V okně **Options for Target** v záložce **Debug** zvolíme debugger ''ST-Link Debugger'', případně ''J-LINK/J-TRACE Cortex'' pokud bude deska do tohoto režimu přepnuta - Vytvoříme nový soubor **main.c** přes stromovou strukturu (pravým tlačítkem na ''Source Group 1 -> Add New Item to Source Group 1 ...'') Zde obrázkový návod k bodům výše: ==== 2. Výběr MCU ==== {{:courses:b2m37mam:tutorials:keil:keil_select_device.jpg?400|}} ==== 3. Manage RTE ==== {{:courses:b2m37mam:tutorials:keil:keil_rte.jpg?600|}} ==== 4. Výběr jazyka C ==== {{:courses:b2m37mam:tutorials:keil:keil_compiler.jpg?400|}} ==== 5. Výběr Debuggeru ==== {{:courses:b2m37mam:tutorials:keil:keil_debug.jpg?400|}} ==== 6. Nový soubor ==== {{:courses:b2m37mam:tutorials:keil:keil_new_item.jpg?600|}} {{:courses:b2m37mam:tutorials:keil:keil_new_file.jpg?400|}} ===== První program ===== Základní program, který bude blikat s LEDkou na vývojovém kitu Nucleo s procesorem STM32F401RE může vypadat následovně při zachování výchozího nastavení #include #define setbit(reg, bit) ((reg) |= (1U << (bit))) #define clearbit(reg, bit) ((reg) &= (~(1U << (bit)))) #define togglebit(reg, bit) ((reg) ^= (1U << (bit))) int main(void) { /* klicovym slovem volatile vyradime promennou i z pripadne optimalizace */ volatile int i = 0; setbit(RCC->AHB1ENR, 0); // aktivace hodin brany GPIOA setbit(GPIOA->MODER, 10); // nastaveni pinu PA5 jako digital out clearbit(GPIOA->MODER, 11); clearbit(GPIOA->OTYPER, 5); // nastaveni pinu PA5 jako dvoustavovy (push-pull) setbit(GPIOA->OSPEEDR, 10); // nastaveni rychlosti brany na medium speed clearbit(GPIOA->OSPEEDR, 11); clearbit(GPIOA->PUPDR, 10); // vypnuti pull-up/pull-down clearbit(GPIOA->PUPDR, 11); setbit(GPIOA->ODR, 5); // nastaveni logickych urovni pinu clearbit(GPIOA->ODR, 5); while (1){ togglebit(GPIOA->ODR, 5); // prepnuti stavu LED /* smycka, co jen inkrementuje promennou, tj. ceka */ for(i = 0; i < 500000; i++); } } ===== Kompilace a spuštění projektu ===== - Překlad se provede stisknutím **Project -> Build Target**, přes ikonu **1** z nástrojové lišty (viz. obrázek níže), případně klávesou **F7** - Nahrání do mikrokontroléru se nahraje stisknutím **Flash -> Download**, přes ikonu **2** z nástrojové lišty (viz. obrázek níže), případně klávesou **F8** {{:courses:b2m37mam:tutorials:keil:keil_main_window.png}}