STM32L053 Nucleo-64 Inbetriebnahme

Schritt 1: System Workbench for STM32 installieren:

http://www.openstm32.org/System%2BWorkbench%2Bfor%2BSTM32

Schritt 2: Mit einem mini USB Kabel das Eval Board an den PC anschließen. Wenn alles richtig läuft sollte drei LEDs des Boardes zu blinken anfangen. LED LD3 und LD1 leuchten, LD2 blinkt grün. Desweiteren sollte das Board wenn ihr auf den Geräte-Manager geht angezeigt werden. Wenn das nicht der Fall ist, nochmal die Position der Jumper checken (steht auf der Rückseite der Verpackung)

Wenn es dann immer noch nicht funktioniert könnte das Kabel evlt kaputt sein :D (ist mir selber schon passiert)

Schritt 3: Die System Workbench starten und auf File (oben links) drücken. Dann New->Project. Anschließend erstellt ihr ein C Projekt.

Es öffnet sich ein Fenster, ihr könnt eurem Projekt jetzt einen Namen geben. Nennen wir es mal Test1

Unter dem Ordner Executable wählt ihr Ac6 STM32 MCU Project aus. Dann drückt ihr Next.

Anschließend werdet ihr gefragt ob ihr Debug und Release wollt. Das passt schon so und nochmal Next.

Bei dem Fenster "Target Configuration" macht ihr die Häckchen überall weg, bis auf "Show ST NUCLEO boards".

Dann wählt ihr bei Series den STM32LO aus. Anschließend bei Board noch unser Board, den STM32L053R8.

Unter Mcu müsst ihr eigentlich nichts auswählen.

Dann Next.

Nicht ganz so selbsterklärend: Beim Fenster Project Firmware configuration wählt ihr Hardware Abstraction Layer (Cube HAL) aus, obwohl die Erste Intention wahrscheinlich wäre No firmware oder den Standard zu nehmen. Wenn noch nicht geschehen, dann downloadet target firmware. 

Anschließend einen Haken setzen bei Add low level drivers in the project. Dann noch einen as static external libraries. Dann zwei Haken bei den Additional drivers setzen. Dann habt ihr nämlich schonmal libs die ihr in Programmen includen könnt. 

Dann noch zwei Haken unten wenn ihr wollt und dann finish. 

Um sinnvoll programmieren zu können braucht ihr das Datenblatt und das Reference Manual. 

Hier ein Beispiel Code um die LD1 rot/grün zu togglen: Dafür in die main.c eures Programmes kopieren:


#include "stm32l0xx.h"
#include "stm32l0xx_nucleo.h"


int main(void)
{
uint32_t i;
uint8_t button_pressed = 0; // preset with LED running

// Enable port clocks. CPU clock is unchanged 2.1 MHz MSI reset value
RCC->IOPENR |= 0x1; // PA clock on (LED_gn). RCC_IOPENR[0]
RCC->IOPENR |= 0x4; // PC clock on (button). RCC_IOPENR[2]

// Set Data Direction Register
GPIOA->MODER |= (1<<10) ; // PA5 is output, driver strength is weak
GPIOA->MODER &= ~(1<<11) ; // PA5 is output, driver strength is weak
GPIOC->MODER &= ~(1<<26) ; // PC13 is input
GPIOC->MODER &= ~(1<<27) ; // PC13 is input
// GPIOC -> PUPDR |= (1<<26) ; // PC13 pull up not necessary because HW pull up

while (1)
{
if ((GPIOC->IDR & 0x00002000) == 0) // if button is pressed
{
for (i = 0; i < 20000; i++); // debounce
button_pressed = ~button_pressed; // change between 00 and FF
}

if (button_pressed == 0)
{
GPIOA->ODR ^= (1<<5); // toggle PORT A Output Register
for (i = 0; i < 50000; i++); // wait a while
}
}
return 1;
}

Euren Code könnt ihr mit einem Bild auf den Hammer builden, dann mit einem Druck auf einen Pfeil neben dem Käfer->dann den nahmen eures Projekts. Wenn es da nicht zu finden ist, dann müsst ihr auf Debug as > gehen und dann die elf Datei eures Projektes anwählen, die durch den Build entstanden ist. Dann ok. Dann werdet ihr gefragt ob die Perspektive auf Debug verändert werden soll. Ja dazu.

Dann seid ihr im Debug Modus. Wenn alles läuft kommen keine Fehlermeldungen und euer Programm macht das was es tun soll. Also vielleicht seht ihr wenn alles gut geht euer Lämpchen blinken :D 

 

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.