Das STM32F303 Discovery

Die STM32 F3 Serie kombiniert einen 32-Bit ARM Cortex-M4-Kern mit DSP und FPU Befehlen. Das STM32F3-Discovery bietet gute Unterstützung bei dem Kennenlernen dieser Mix-Signale und der Entwicklung eigener Programme. Es ermöglicht sowohl Anfängern als auch Fortgeschrittenen eine schnelle Einarbeitung in die ARM Technologie.

Das STM32F303-Discovery nutzt den ARM Cortex M4 Controller STM32F303VCT6 und beinhaltet eingebettet ST-Link/V2 zum Programmieren und Debuggen. Mit dem integrierten Gyroskop lassen sich Lageänderungen des Boards mittels verschiedenfarbiger LEDs veranschaulichen. Ebenfalls per LED weist der E-Kompaß Norden aus. Das Board verfügt über 2 Mini USB-Anschlüsse.

Eigenschaften:

  • Mikrocontroller STM32F303VCT6 im LQFP100 Gehäuse mit
    • 32 Bit ARM Cortex-M4 Kern
    • 256 KByte Flash
    • 48 KByte RAM
    • ST MEMS digitales 3-Achs-Gyroskop und digitaler Kompaß
  • 10 LEDs
    • 1 für USB Kommunikation
    • 1 Power-LED für 3,3 V
    • 8 durch den Anwender nutzbare LEDs
  • 2 Taster
    • 1 für Reset
    • 1 frei verfügbar für den Anwender
  • ST-Link V2 Programmer onboard

Beschaffung: das STM32F3 Discovery im myAVR Shop

Schnelleinstieg mit dem STM32F303 Discovery

  1. SiSy starten
  2. neues Projekt anlegen, Profil ARM Vorgehensmodell auswählen
  3. keine Vorlage aus dem Libstore wählen
  4. kleines Programm anlegen, Zielsprache ARM C++, Ziel Hardware STM32F3 Discovery mit JLink
  5. Grundgerüst laden
//----------------------------------------------------------------------
// Titel     : Grundgerüst einer einfachen ARM C Anwendung in SiSy
//----------------------------------------------------------------------
// Funktion  : ...
// Schaltung : ...
//----------------------------------------------------------------------
// Hardware  : STM32F303 Discovery
// MCU       : STM32F303VCT6
// Takt      : 72 MHz
// Sprache   : ARM C
// Datum     : ...
// Version   : ...
// Autor     : ...
//----------------------------------------------------------------------
#include <stddef.h>
#include <stdlib.h>
#include "stm32f30x.h"
#include "mySTM32.h"
 
void initApplication()
{
	SysTick_Config(SystemCoreClock/100);
	// weitere Initialisierungen durchführen
}
int main(void)
{
	SystemInit();
	initApplication();
	do{
		// Eingabe
		// Ausgabe
		// Verarbeitung
	} while (true);
	return 0;
}
extern "C" void SysTickFunction(void)
{
	// Application SysTick
}

//----------------------------------------------------------------------
// Titel     : Einfache digitale Ausgabe mit dem STM32F3-Discovery
//----------------------------------------------------------------------
// Funktion  : lässt die rote LED blinken
// Schaltung : rote LED an PE9
//----------------------------------------------------------------------
// Hardware  : STM32F303 Discovery
// MCU       : STM32F303VCT6
// Takt      : 72 MHz
// Sprache   : ARM C
// Datum     : 21.01.2013
// Version   : 1
// Autor     : Alexander Huwaldt
//----------------------------------------------------------------------
#include <stddef.h>
#include <stdlib.h>
#include "stm32f30x.h"
#include "myStm32.h"
 
#define LEDred (1<<9)
GPIO_InitTypeDef GPIO_InitStructure;
 
void initApplication()
{
	SysTick_Config(SystemCoreClock/100);
	// weitere Initialisierungen durchführen
 
	/* red LED Periph clock enable */
	RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOE, ENABLE);
 
	/* Configure PD3 = red LED in output pushpull mode */
	GPIO_InitStructure.GPIO_Pin = LEDred;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
	GPIO_Init(GPIOE, &GPIO_InitStructure);	
 
}
 
int main(void)
{
	SystemInit();
	initApplication();
	do
	{
		GPIO_SetBits(GPIOE,LEDred);
		waitMs(100);
		GPIO_ResetBits(GPIOE,LEDred);
		waitMs(100);
	}
	while (true);
	return 0;
}
 
extern "C" void SysTick_Handler(void)
{
	// Application SysTick
}

Übersetzen, übertragen und testen

Die Programme sind getestet und können sofort übersetzt (kompilieren, linken) und in den Programmspeicher des Controllers übertragen werden (brennen).

Weitere Beispiele

Weitere Beispiele erhalten Sie aus dem SiSy-Libstore.

Videozusammenfassung

Weitere Hinweise