Das STM32F401 Nucleo
Das STM32F401 Nucleo ist die derzeit Leistungsfähigste Variante aus der arduinokompatiblen Nucleo-Familie von ST.
- STM32F401 Cortex M4 32-Bit ARM Mikrocontroller im LQFP64 Gehäuse
- 256K FLASH
- 96K SRAM
- 84 MHz
- Arduino Uno Revision 3 kompatible Steckverbinder
- On-board ST-LINK/V2-1 Debugger/Programmer mit SWD
- Flexible Spannungsversorgung üver USB oder externe (3.3 V, 5 V, 7 - 12 V)
- drei LEDs
- USB Kommunikation (LD1),
- Benutzer LED (LD2),
- Power LED (LD3)
- zwei Taster
- Benutzertaster
- RESET
- USB Virtual Com Port Unterstützung
Beschaffung: STM32 Discovery im myMCU Shop
Schnelleinstieg mit dem STM32F401 Nucleo
- SiSy starten
- neues Projekt anlegen, Profil ARM Vorgehensmodell auswählen
- keine Vorlage aus dem Libstore wählen
- kleines Programm anlegen, Zielsprache ARM C++, Ziel Hardware STM32F401 Nucleo mit JLink
- Grundgerüst laden
//---------------------------------------------------------------------- // Titel : Grundgerüst einer einfachen ARM C Anwendung in SiSy //---------------------------------------------------------------------- // Funktion : ... // Schaltung : ... //---------------------------------------------------------------------- // Hardware : ... // MCU : ... // Takt : ... // Sprache : ... // Datum : ... // Version : ... // Autor : ... //---------------------------------------------------------------------- #include <stddef.h> #include <stdlib.h> #include "hardware.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 }
Blinky
//---------------------------------------------------------------------- // Titel : Einfache digitale Ausgabe mit dem STM32F401 Nucleo //---------------------------------------------------------------------- // Funktion : lässt die User-LED toggeln // Schaltung : LED an GPIO Port A5 //---------------------------------------------------------------------- // Hardware : STM32F401Nucleo // MCU : STM32F401RET6U // Takt : 84 MHz // Sprache : ARM C // Datum : 04.04.2014 // Version : 1.0 // Autor : Alexander Huwaldt //---------------------------------------------------------------------- #include <stddef.h> #include <stdlib.h> #include "hardware.h" void initApplication() { SysTick_Config(SystemCoreClock/100); // weitere Initialisierungen durchführen /* GPIOD Takt einschalten LED */ RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); /* Konfiguriere GPIO Port A5 LED*/ GPIO_InitTypeDef GPIO_InitStructure; GPIO_StructInit (&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(GPIOA, &GPIO_InitStructure); } int main(void) { SystemInit(); initApplication(); do{ GPIO_ToggleBits(GPIOA,GPIO_Pin_5); waitMs(200); } 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.