Kasutaja tarvikud

Lehe tööriistad


juhendid:stm32:stm32cubeide_kasutamine

STM32CubeIDE Kasutamine

STM32CubeIDE on Atollic TrueStudio edasiarendus. Tegu on Eclipse-i baasil tehtud tarkvaraarenduskeskkonnaga, kuhu on ka integreeritud STM32 Cube koodigeneraator ja tarkvarapakettide haldur.

Uue projekti loomine

Esmane tegevus on luua uus projekt.

Kui sul kohe pärast käivitust avaneb „Information Center“ aken, siis vali sealt lihtsalt „Start new STM32 project“. (On soovitatav see perspektiiv aga kohselet kinni panna, kuna see pigem jääb pinnuks silma.)

Tavalisest C/C++ perspektiivist saab uue projekti luua kas „File“ → „New“ valikust või tehes parema klõpsu „Project Explorer“ kaardile. Mõlemal juhul on projekti tüübiks „STM32 Project“.

Konfigureerimine

Järgnevalt avaneb sulle STM32CubeMX-i liides. Käsitleme praegu Nucleo-F303K8 arendusplaadi kasutamist, seega on vaja avada „Board Selector“ (1) sakk. Otsingu läbi on võimalik leida vastav seade (2). Valid see ja vajuta „Next“ nuppu (3).

Nüüd onvaja projektile nimi ja koh määrata. TÄHELEPANU! Kui sa „Location“ (1) infot ei muuda, siis genereerib tööriist ise sinna projektile alamkausta. Kui aga muudad, siis seda alamkausta ei tehta ja projekt pannakse maha täpselt sinna kausta, kuhu sa „Location“ teega viitad!

Muud seaded jäta vaikeseadeteks (2): „Targeted Language“ on „C“, „Targeted Binary Type“ on „Executable“ ja „Targeted Project Type“ olgu „STM32Cube“.

Vajuta „Finish“ nuppu (3). „Next“ nupp viiks sind riistvarapaketihalduri seadistamisele, aga üldiselt pole vaja seda näppida.

Kui küsitakse, et kas initsialiseerida kogu perifeeria vaikeolekusse, siis vajuta „Jah“.

Nüüd oleme konfiguratsiooni aknas. Kogu tööpõhimõte nüüd on, kasutades seda akent, seadistada mikrokontrolleris perifeeria, perifeeriakomponentide seaded ja nende poolt kasutatavad viigud.

Esmane asi: Lülita välja MCO viik. Nucleo-F303K8 plaadil ei ole see viik riistvaraliselt vaikimisi ühendatud välise taktiallikaga. Selleks vali hiire vasaku nupuga viik PF0 ja võta ära RCC_OSC_IN.

Lisaks veel tasub märkida, et vaikimisi on ülesse seadistatud VCP_RX/_TX ja SWCLK/SWDIO jalad. Neid ei ole soovitatav muuta. SWCLK & SWDIO on vajalikud programmeerimis- ja silumisliidese Serial Wire Debug kasutamiseks ning VCP/USART2 on kasutusel kui virtuaalne COM-port. Sellega saab andmeid terminali edastada.

Nucleo-F303K8 plaadi peal on üks LED, mida saab kasutaja vabalt sisse/välja lülitada. Selle kohta leiab infot Nucleo-F303K8 kasutaja manuaalist lk. 18. Väljavõte sellest on järgmine:

See viitab, et LED sisse lülitamiseks tuleb kasutada viiku PB3. Valime mikrokontrolleri peal viigu PB3 hiire vasaku nupuga ja määrame selle kui GPIO_Output. Parema nupu alt vali Enter User Label ja sisesta LED. Viimane annab meil koodis võimaluse viidata definitsioonile LED ja mitte PB3.

Enne salvestamist mine „Project Manager“ saki alla (1) ja sealt edasi „Code Generator“ vaatesse (2). Siin huvitavad meid järgmised asjad:

  • „Copy only necessary library files“ seade oleks valitud (3).
  • „Generate peripheral initialization as a pair of '.c/.h' files per peripheral“ seade ees oleks liinukene (4).

Salvesta nüüd projekt. Kohe pärast salvestamist küsib IDE, et kas sa soovid koodi genereerida. Vali „Yes“. Kui soovid niisama koodi genereerida, siis nupu leiab ülevalt (1). Nüüd võib aga STM32CubeMX-i vaate sulgeda (2). Selle vaate saab alati uuesti avada, kui proovid projekti sees olevad .ioc faili avada IDE-ga (3).

Koodi kirjutamine

Genereeritud projekti main meetod näeb välja selline:

HAL_Init() initsiliseerib madalama taseme riistvara, SystemClock_Config() seadistab süsteemi kella, MX_GPIO_Init() initsialiseerib viigu PB3 kui väljundi, MX_USART2_UART_Init() seadistab suhtluse jadaliidesega. Nagu näha, siis tehakse kasutaja eest ära juba mikrokontrollerite madalama taseme registrite seadistamine, kasutajal jääb üle kutsuda välja sobivad meetodid.

LEDi põlema/kustu saame panna HAL_GPIO_WritePin() meetodi abil. Viigu väljundi olekut saab muuta vastupidiseks meetodi HAL_GPIO_TogglePin() abil. Konkreetselt viigu PB3 taga olevat LEDi paneme põlema HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET); ja kustu HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET); abil.

:!: Pane tähele, et koodi kirjutaksid USER CODE BEGIN ja USER CODE END sektsioonide vahele, muidu järgmine kord, kui projekti täiendad STM32Cube-i abil, siis võib kasutaja kood olla kustutatud.

Kui kasutaja on koodi kirjutanud, siis ehitada saab projekti Ctrl + B klahvikombinatsiooni abil või valida menüüst Project → Build Project.

Koodi pealelaadimiseks mikrokontrollerile vali Run→Debug või vajuta rohelise putuka sümbolit.

Uue projekti puhul avaneb aga kõigepealt seadistusaken. Seal ei ole avja midagi muuta, võib lihtsalt „OK“ vajutada.

See avab CubeIDE-i silumise perspektiivvaate.

Hetkel ei vaata silumist lähemalt. Kui vajutada punast Stop nuppu, siis käivitub allalaetud programm ilma silumiseta ning peaks tegema seda, mida sa oleks kontrollerile kirjutanud ning mitte seda mida sa oled mõelnud. :) Kui oled veendunud, et LEDi oled põlema/kustu saanud, siis proovi see ka vilkuma panna. HAL_Delay() võiks siin aidata.

Arrayjuhendid/stm32/stm32cubeide_kasutamine.txt · Viimati muutnud: 2020/07/22 16:39 persoon erki.meinberg

Lehekülje tarvikud