====== 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}}