User Tools

Site Tools


juhendid:stm32:uvision_projekti_loomine

µVision projekt STM32 programmeerimiseks

Järgnev juhend õpetab kuidas luua Keil µVision 4 projekti STM32 programeerimiseks. Näited on tehtud Robotiklubi Puldi kohta.

Eeldused

  • Keil µVision 4 on installeeritud.
  • STM32L1xx standard peripheral library on alla tõmmatud.

Kataloogide ettevalmistus

  1. Loo uus kataloog oma projekti nimega (näiteks “TestProjekt”). Asukoht võib olla ükskõik kus.
  2. Loo alamkaust “Source”.
  3. Loo alamkaust “Output”.
  4. Paki lahti STM32L1xx standard peripheral library ja kopeeri sealt kaust “Libraries” enda projekti kausta.
    Veendu, et “Libraries” all on olemas kaustad “CMSIS” ja “STM32L1xx_StdPeriph_Driver”.

Projekti loomine

  1. Ava Keil µVision 4
  2. Vali Project → New µVision Project
  3. Avaneb projekti faili loomise aken. Mine oma projekti kausta ja loo sinna samanimeline projekti fail (näiteks “TestProjekt”).
  4. Järgmisena tuleb valida mikrokontroller. Otsi loetelust “STMicroelectronics” ja vali selle alt õige mikrokontroller. Kui teed projekti Robotiklubi puldi jaoks, vali STM32L152R6.
  5. µVision küsib kas tekitada “startup_stm32l1xx_md.s” fail. Vali “Yes”.
  6. Projekt on loodud.

Failide seadistamine

  1. Vajuta tööriistaribal nuppu “File extensions, Books and environment…”.
  2. Avaneb “Components, Environment and Books” aken ja valitud on “Project Components” leht.
  3. Muuda Project Targets all “Target 1” oma seadme nimeliseks. Nime saab muuta topelklõpsuga vanal nimel. Robotiklubi puldi kasutajad pangu nimeks “Pult”.
  4. Muuda grupp nimega “Source Group 1” ümber “User”. Sinna gruppi peaks kuuluma fail “startup_stm32l1xx_md.s”.
  5. Leia lisamise nupp (punktiirjoonega ristkülik ) ja lisa veel 2 gruppi:
    • CMSIS
    • StdPeriphDriver
  6. Vali grupp “CMSIS” ja lisa sinna kaustast “TestProjekt\Libraries\CMSIS\Device\ST\STM32L1\Source\Templates” fail nimega:
    • system_stm32l1xx.c
  7. Vali grupp “StdPeriphDriver” ja lisa sinna kaustast “TestProjekt\Libraries\STM32L1xx_StdPeriph_Driver\src” järgnevad failid:
    • misc.c
    • stm32l1xx_adc.c
    • stm32l1xx_dma.c
    • stm32l1xx_gpio.c
    • stm32l1xx_rcc.c
    • stm32l1xx_spi.c
    • stm32l1xx_syscfg.c
    • stm32l1xx_tim.c
    • stm32l1xx_usart.c
  8. Failide lisamise tulemus peaks olema selline:
  9. Failide seadistamise lõpetamiseks vajuta selle aknas “OK”.

Projekti seadistamine

  1. Vajuta tööriistaribal nuppu “Target options…”:
  2. Avanevas aknas käi läbi kõik lehed:
    1. Device lehel veendu, et on valitud õige mikrokontroller (Puldi puhul STM32L152R6).
    2. Target lehel veendu, et Xtal on 8.0 MHz.
    3. Output lehel vali “Select Folder for Objects” nupust kaustaks “TestProjekt\Output” kataloog. Kui õigesti valisid, siis peaks “Create Executable: .\Output\TestProjekt” kuvatama.
    4. Listing lehel vali samamoodi “Select Folder for Listings…” nupust kaustaks “TestProjekt\Output” kataloog.
    5. User lehel pole midagi vaja muuta.
    6. C/C++ lehel:
      1. Lisa “Define” lahtrisse “USE_STDPERIPH_DRIVER, STM32L1XX_MD”.
      2. Vali “Optimization” rippmenüüst “Level 1 (-O1)”.
      3. Märgi linnuke “One ELF Section per Function”.
      4. “Include Path” lahtri järel vajuta nuppu “…”. Lisa järgmised kataloogi:
        • Source
        • Libraries\CMSIS\Include
        • Libraries\CMSIS\Device\ST\STM32L1xx\Include
        • Libraries\STM32L1xx_StdPeriph_Driver\inc
      5. Include kataloogide lisamine näeb välja sedasi:
    7. Asm lehte pole vaja muuta.
    8. Linker lehel märgi linnuke “Use Memory Layout from Target Dialog” ees.
    9. Debug lehel:
      1. Vali ülalt paremalt “Use:” rippmenüüst “ST-Link Debugger”.
      2. Vajuta kõrvalolevat “Settings” nuppu.
      3. Avaneb programmaatori seadistamise aken. Vali selle “Debug” lehel “Port” rippmenüüst “SW”.
      4. Mine “Flash Download” lehele ja tee linnuke “Reset and Run” ette.
      5. Vajuta “Add” nuppu lehe all ja vali järgnev “Flash Programming Algorithm”: STM32L1xx Med-density Flash.
      6. Sulge programmaatori seadmistamise aken “OK” nupuga.
    10. Utilities lehel tee linnuke “Use Debug Driver” ette.
  3. Nüüd on projekt seadistatud ja vajuta “OK” nuppu.

Teegi seadistamine

STM32L1 standard peripheral library nõuab “stm32l1xx_conf.h” faili olemasolu. Selleks tuleb see ise luua.

  1. Vali µVision-i põhiaknas File → New. Tekib uus ilma nimeta fail.
  2. Kopeeri sinna faili järgnev kood:
    /* Define to prevent recursive inclusion -------------------------------------*/
    #ifndef __STM32L1xx_CONF_H
    #define __STM32L1xx_CONF_H
     
    /* Includes ------------------------------------------------------------------*/
    #include "stm32l1xx_adc.h"
    #include "stm32l1xx_dma.h"
    #include "stm32l1xx_gpio.h"
    #include "stm32l1xx_rcc.h"
    #include "stm32l1xx_spi.h"
    #include "stm32l1xx_syscfg.h"
    #include "stm32l1xx_tim.h"
    #include "stm32l1xx_usart.h"
    #include "misc.h" 
     
    /* Exported macro ------------------------------------------------------------*/
    #define assert_param(expr) ((void)0)
     
    #endif
  3. Pea meeles, et C keele kompilaatorid nõuavad üldiselt reavahetuse olemasolu faili lõpus. Ehk tekita üks tühi rida faili lõppu.
  4. Salvesta uus fail “Source” kausta “stm32l1xx_conf.h” nimega.

"Main" faili tegemine

Viimane asi mis kompileeruvast projektist puudu, on fail mis sisaldab “main” funktsiooni.

  1. Tekita uus tühi fail ja lisa sinna järgnev kood:
    #include "stm32l1xx.h"
     
    int main(void)
    {
    }
  2. Salvesta fail “Source” kausta “main.c” nimega.
  3. Uus fail tuleb lisada “User” gruppi. Seda saab teha komponentide seadistamise aknas või saab kiiremalt, kui vajutada “User” grupi peal hiire paremat nuppu.
  4. Avaneb rippmenüü kust tuleks vajutada “Add Files to Group 'User'”.
  5. Faili valiku aknas otsi üles “Source\main.c” ja vajuta “Add”.
  6. Nüüd on projektis olemas kõik vajalikud failid, et saaks reaalselt programmi kirjutada.
  7. Proovi järgi kas projekt kompileerub - selleks vajuta F7 klahvi või otsi üles “Build” nupp ().
  8. Kui projekt kompileerub probleemideta peaks “Build Output” aknaosasse tekkima järgnev logi:
Build target 'Pult'
compiling main.c...
linking...
Program Size: Code=600 RO-data=260 RW-data=0 ZI-data=1632  
".\Output\TestProjekt.axf" - 0 Error(s), 0 Warning(s).
juhendid/stm32/uvision_projekti_loomine.txt · Last modified: 2022/04/28 20:24 (external edit)