Warning
This page is located in archive.

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

  1. Nový projekt založíme přes menu Project → New uVision Project, kde následně vybereme umístění, kde bude projekt uložen.
  2. Vybereme procesor podle aplikace, v našem případě STM32F401RE nebo STM32F446RE
  3. V okně Manage Run-Time Environment zaškrtneme CMSIS → Core a Device → Startup
  4. V okně Options for Target v záložce C/C++ (AC6) zvolíme překladač pro jazyk C c99
  5. 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
  6. 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

3. Manage RTE

4. Výběr jazyka C

5. Výběr Debuggeru

6. Nový soubor

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 <stm32f401xe.h>
 
#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

  1. 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
  2. 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/first_project.txt · Last modified: 2023/06/29 14:29 by nentvond