Warning
This page is located in archive.

7 - Úvod do Nucleo STM32F446RE

* pro vyučující: 07

Procvičovaná témata

  • Prostředí mbed.org a kompilace programu pro STM32F446RE
  • Křížová kompilace pro STM32F446RE a flashování
  • Použítí tlačítka a LED

Úkoly na cvičení

Vývoj v prostředí mbed.org

Ve webovém vývojovém prostředí https://developer.mbed.org/platforms/ST-Nucleo-F446RE/ vytvořte aplikaci pro blikání LED a vyčitání stavu tlačítka.

  • Vytvořte si účet, pokud jej ještě nemáte
  • Založte projekt pro STM32F446RE a pojmenujte jej Lab07-mbed
  • Implementujte jednoduchý program pro periodické blikání LED

#include "mbed.h"
 
DigitalOut myled(LED1);
 
int main() {
   float period = 0.3; // 300 ms
   while (1) {
      myled = !myled;
      wait(period);
   }
}

  • Implementujte jednoduchý program pro ovládání LED stiskem tlačítka

#include "mbed.h"
 
DigitalOut myled(LED1);
DigitalIn mybutton(USER_BUTTON); 
 
int main() {
   while (1) {
      if (mybutton == 0) {
         myled = 1;
      } else {
         myled = 0;
      }
   }
}

  • Program rozšiřte tak, aby jeden stisk tlačítka střídavě LED rozsvítil nebo zhasnul
Pokud vám práce ve webovém vývojovém prostředí nevyhovuje, můžete se nastavit křížovou kompilaci cross-compilation).

Alternativně můžete využít intergrace do vývojové prostředí System Workbench, které je součástí OpenSTM32 vývojových nástrojů. V zásadě vývoj odpovídá křížové kompilaci, jen je nutné si ještě nakonfigurovat vývojové prostředí, které je modifikovanou verzí IDE Eclipse.

Další úkoly na cvičení

V další části cvičení pokračujte implementací domácího úkolu hw08.

Procvičování binárních výrazů

  • Maskování bitu x
    • varianta 1
      bit = (number >> x) & 1;
    • varianta 2
      bit = (number) & (x << 1);
    • jaký je rozdíl mezi variantou 1 a variantou 2? Kdy použijeme kterou z nich?
  • Nastavení bitu x na 1
    number |= 1 << x;
  • Nastavení bitu x na 0
    number &= ~(1 << x);
  • Přepínání bitu
    number ^= 1 << x;
  • Nastavení bitu podle hodnoty proměnné
    number ^= (-x ^ number) & (1 << n);
courses/b3b36prg/labs/lab07.txt · Last modified: 2020/05/10 06:25 by faiglj