Komplette-Library-Liste (STM32F4)


Hier findet sich eine Liste mit allen Librarys die für den STM32F4 online sind. Einfach auf den Link klicken um eine nähere Beschreibung und das entsprechende ZIP-File zu finden.

Die einzelnen source files (ohne Beispiel) findet ihr auch in meiner Dropbox :

Link : DropBox_F407

Die ZIP-Files beinhalten den Source-Code (in C), ein Beispiel-Programm (in C) wie die Library angewendet wird, und (falls es das Beispiel notwendig macht) noch zusätzliche Librarys von hier.

Liste :

01 = LED (für die 4 LEDs auf dem STM32F4-Discovery-Board)
02 = Button (für den User-Button auf dem STM32F4-Discovery-Board)
03 = Dig-Out (um Digitale Ausgangspins mit der CPU zu steuern)
04 = Dig-In (um Digitale Eingangspins mit der CPU auszuwerten)
05 = ADC-Single (um den ADC im Single-Conversation-Mode zu benutzen)
06 = LCD_ST7783 (um ein Grafik-Display mit dem ST7783 Chip anzusteuern)
07 = LCD_Graphic (Grafikfunktionen für das LC-Display, Bilder aus dem Flash)
08 = LCD_Font (um Schrift auf dem LC-Display darzustellen)
09 = Touch_ADS7843 (um einen Touch mit dem ADS7843-Chip auszuwerten)
10 = Systick (für Pausenzeiten, Software-Timer und Software-Counter)
11 = RNG (um Zufallszahlen zu erzeugen)
12 = UART (zum benutzen der 6 UARTs der CPU)
13 = FATFS-SDIO (zum benutzen von SD-Karten mit FAT-Dateisystem)
14 = ADC_DMA (um die AD-Wandler per DMA zu verwalten)
15 = SPI-LoLevel (zum benutzen der 3 SPI-Schnittstellen)
16 = SPI-MAX5250 (um ein 4fach DAC MAX5250 anzusteuern)
17 = SPI-LIS302DL (für den 3Achs-Beschleunigungs-Sensor auf dem Discovery)
18 = I2C-LoLevel (zum benutzen der 3 I2C-Schnittstellen)
19 = I2C_M24C02 (für ein 256Byte EEprom M24C02/PCF8582 anzusteuern)
20 = FATFS_Picture (BMP-Files, JPG-Files und Images von SD-Karte anzeigen)
21 = ADC_Injected-Group (zum betreiben der AD-Wandler im Injected-Group-Mode)
22 = SysCheck (System-Clock-Test und Assert-Fehler Auswertung)
23 = DAC (zum benutzen der beiden DA-Wandler der CPU)
24 = DAC_DMA (zum ausgeben von Kurvenformen per DA-Wandler der CPU)
25 = PWM (zum ausgeben von PWM-Signalen per Timer)
26 = Logview (um eine Grafische Datenanzeige mit dem PC zu machen)
27 = DCMI_OV9655 (um Bilder von einem Camera-Modul anzuzeigen)
28 = EXT_Interrupt (um die externen Interrupts zu benutzen)
29 = PS2_Keyboard (um eine PS2-Tastatur auszuwerten)
30 = PS2_Mouse (um eine PS2-Maus auszuwerten)
31 = USB_CDC (zum Betrieb der USB-OTG-Buchse im CDC-Mode)
32 = USB_MSC_HOST (zum anschließen von USB-Sticks an die CPU)
33 = LCD_SSD1289 (um ein Grafik-Display mit dem SSD1289 Chip anzusteuern)
34 = LCD_2x16 (um ein Text-LC-Display anzusteuern)
35 = VGA_Screen (um einen VGA-Monitor anzusteuern 320×240, 8bit Farbe)
36 = VGA_Graphic (Grafikfunktionen für den VGA-Screen, Bilder aus dem Flash)
37 = VGA_Font (um Schrift auf dem VGA-Monitor darzustellen)
38 = PWM_DMA (um 8 bzw. 16 PWM-Kanäle auszugeben)
39 = IRMP (zum Auswerten von IR-Signalen per IRMP-Lib)
40 = HTTP_Server (Webserver mit externem PHY : DP83848C)
41 = RTC (zum benutzen der internen RealTimeClock der CPU)
42 = IWDG (zum benutzen des internen Watchdog der CPU)
43 = LCD_EADOG (für Grafik-Display der EA-DOG-Serie)
44 = UDP_Server (UDP-Server mit externem PHY : DP83848C)
45 = CS43L22 (WAV-Files per Audio-DAC vom Discovery-Modul)
46 = IRSND (zum senden von IR-Daten per IRSND-LIB)
47 = MP45DT02 (für den Audio Sensor auf dem Discovery-Modul)
48 = USB_HID (zum Betrieb der CPU als USB-HID-Device)
49 = FRQ_IN (zum messen von Frequenzen per Timer)
50 = SRAM (für ein externes SRAM am Discovery-Modul)
51 = PWM_IN (zum messen von PWM-Signalen per Timer)
52 = Encoder (zum auswerten eines Drehgebers per Timer)
53 = CS43L22_MP3 (MP3-Files per Audio-DAC vom Discovery-Modul)
54 = CS32L22_MP3_USB (MP3-Files vom USB-Stick abspielen)
55 = Timer (Timer-Funktionen der CPU)
56 = USB_HID_HOST (zum betreiben von USB-Maus/Tastatur an der CPU)
57 = EE_Flash (virtuelles EEprom per Flash der CPU)
58 = Backup-RAM (zum Betrieb des internen 4kByte Backup-RAM)
59 = CAN-LoLevel (zum benutzen der 2 CAN-Schnittstellen)
60 = CAN_MCP25050 (8Kanal CAN IO-Expander)
61 = LCD-Nokia5110 (für Graphic-Display Nokia-5110)
62 = OneWire-LoLevel (zum benutzen eines OneWire-Bus)
63 = OneWire-DS18XX (zum auslesen von OneWire Temperatur Sensoren)
64 = I2C_Slave (zum benutzen des STM32F4 als I2C-Slave)
65 = SPI-LoLevel-HalfDuplex (SPI im Half-Duplex Betrieb)
66 = SPI_HD_TM1638 (für IO-Platine mit TM1638-Chip)
67 = LCD_ILI9341_SPI (für Grafik-Dispaly mit ILI9341-Chip per SPI)
68 = RN42 (zum benutzen eines Bluetooth-Moduls als UART)
69 = L298-Stepper (zum ansteuern eines Schrittmotors per L298)
70 = STemWin ( für eine Windows ähnliche GUI per Touch)
71 = AM2301 (Temperatur und Luftfeuchtesensor vom Aosong)
72 = HC_SR04 (Ultraschall-Abstands-Sensor)
73 = FreeRTOS (Echtzeit Betriebssystem)
74 = SPI_Slave (zum benutzen des STM32F4 als SPI-Slave)
75 = String (zum umwandeln von Zahlen in Strings und umgekehrt)
76 = LCD-Nokia-N95-8GB (für ein Grafik-Display mit LDS285-Chip)
77 = UART_DMA (zum benutzen einer UART im DMA-Mode)
78 = WS2812 (zum Betrieb von RGB-LEDs mit WS2812-Chip)
79 = ScopeScreen (zum benutzen eines Oszis als Bildschirm)
80 = LIN-Master (zum benutzen des STM32F4 als LIN-Master)
81 = LIN-Slave (zum benutzen des STM32F4 als LIN-Slave)
82 = OLED-SSD1331 (für ein OLED-Graphic-Display mit SSD1331-Chip)
83 = KeyMatrix (zum anschließen einer Tastatur-Matrix an die CPU)
84 = SPI-LIS3DSH (für den 3Achs-Beschleunigungs-Sensor auf dem Discovery)
85 = Modplayer (zum abspielen von Modul-Files “.MOD” oder “.S3M”)
86 = DigIn-DMA (zum einlesen von Digital-Pins per DMA)
87 = Dual_FATFS (zum gleichzeitigen benutzen von SD-Karte und USB-Stick)
88 = WS2812_8CH (zum Betrieb von bis zu 8 LED-Ketten mit WS2812-Chip)
89 = FATFS-SPI (zum benutzen von SD-Karten mit FAT-Dateisystem per SPI)
90 = I2C_GY-271 (3Achs Kompass-Modul mit HMC5883-Chip per I2C)
91 = SPI_DMA (zum betreiben der SPI-Schnittstelle per DMA)
92 = ID-Check (zum auslesen der unique-ID der CPU)
93 = OTP (zum nutzen der One-Time-Programmable-Bytes der CPU)
94 = SGUI (simple-GUI für den STM32F407 mit ST7783)
95 = uBasic (minimal Version vom uBasic für den STM32F4)
96 = DCF77 (zum anschließen eines DCF77-Moduls an die CPU)
97 = ILI9325 (um ein Grafik-Display mit dem ILI9325 Chip anzusteuern)
98 = FPGA [HAL] (zum programmieren eines Xilinx-FPGAs)
99 = LCD-Text-I2C (um ein Text-LC-Display via I2C anzusteuern) NEW!

Show Projekte:

Show-01 = USB to UART Bridge mit dem STM32F4 (von UB)
Show-02 = Steuerung des STM32F4 per Terminal (von UB)
Show-03 = USB MP3-Player per STM32F4-Discovery-Board (UB)
Show-04 = HTML-Webserver mit SD-Karten Unterstützung (Nik & Joerg)
Show-13 = Mini-SPS für STM32F4 (von UB)
Show-15 = Scope-Clock per STM32F4 (von UB)


46 Antworten auf Komplette-Library-Liste (STM32F4)

  1. Rabbit sagt:

    Hi

    vielen Dank für deine Lib.

    Gibt es auch ein Zip indem alle Files der aaktuellen Libs vorhanden sind?

    Cheers
    Rabbit

    • admin_ub sagt:

      Hallo,
      nein, eine ZIP mit allen Files gibt es im Moment noch nicht. Ist aber ne gute Idee, werd mich drum kümmern.

    • admin_ub sagt:

      Jetzt gibt es eine ZIP !

      • Alex sagt:

        wo finde ich dieses ZIP-File?

        • admin_ub sagt:

          das habe ich wieder gelöscht…war zu viel Aufwand zum pflegen.

  2. Rabbit sagt:

    Thanks

  3. MC sagt:

    Deine Lib ist wirklich klasse! Vielen Dank dafür.
    Hast Du zufällig schon einmal die RTC in Betrieb genommen?

    • admin_ub sagt:

      Gerne.
      Nein, für RTC hab ich noch nichts gemacht. Aber meine ToDo ist jetzt eh fast leer, ich setze es mal drauf. Muss mir aber noch einen Quarz besorgen (der ist glaube ich beim Discovery nicht bestückt). Und wie das mit der Batterie-Funktioniert muss ich auch erst mal nachlesen. Sag bescheid wenn du was bestimmtest damit machen willst, damit ich das event. berückstichtigen kann.

      • MC sagt:

        Die Ansprüche sind, glaube ich, eher gering:
        1s-Interrupt, Setzen von Zeit/Datum, Auslesen von Zeit/Datum, Backup-Funktionalität.

        Vielen Dank für Deine Mühen!

        • admin_ub sagt:

          So, die LIB ist fertig. Die Alarm-Funktion habe ich jetzt mal nicht mit reingenommen. Probier mal ob du damit zurechtkommst.

          • MC sagt:

            …das ging ja schnell!!!

            Zur Zeit läuft meine Uhr mit Deiner LIB leider um etwa Faktor 6 zu schnell. Ich komme im Moment leider noch nicht dahinter, an welcher Konfiguration ich Veränderungen vornehmen muß, damit es mit meinem Board zusammenpaßt. Ich verwende das Xynergy-Board von Silica mit einem STM32F217 und dem externen 32.786kHz Quartz. So sehen die Einstellungen der “system_stm32f2xxx.c” aus:
            *——————————————————
            * System Clock source | PLL (HSE)
            *——————————————————
            * SYSCLK(Hz) | 120000000
            *——————————————————
            * HCLK(Hz) | 120000000
            *——————————————————
            * AHB Prescaler | 1
            *——————————————————
            * APB1 Prescaler | 4
            *——————————————————
            * APB2 Prescaler | 2
            *——————————————————
            * HSE Frequency(Hz) | 25000000
            *——————————————————
            * PLL_M | 25
            *——————————————————
            * PLL_N | 240
            *——————————————————
            * PLL_P | 2
            *——————————————————
            * PLL_Q | 5
            *——————————————————

          • admin_ub sagt:

            die Clock Einstellungen müssten egal sein, du hast ja den 32kHz Quarz drann,
            im Code gibt es die zwei Vorteiler “RTC_AsynchPrediv” und “RTC_SynchPrediv” der eine steht auf 128 der andere auf 256 damit ergibt sich 1Hz für den RTC.
            Vlt muss der F2 hier anders behandelt werden als der F4…da kenn ich mich leider nicht aus.

  4. MC sagt:

    …die Vorteiler habe ich auch schon überprüft. Eigentlich sollte so alles richtig laufen. Ich habe den Verdacht, daß es ein Hardware-Problem ist. Die Kondensatoren sind meiner Meinung nach mit 10pF zu hoch ausgelegt. Ich gehe da am Montag mal mit ‘nem Oszi dran.

    Vielen Dank erst einmal für Deine LIB! Die hat mir in jedem Fall sehr weitergeholfen.

    • admin_ub sagt:

      Du kannst dir den LSE Clock am MCO1-Pin ausgeben lassen und per Oszi nachmessen.

      • MC sagt:

        So, nun läuft es! Es war tatsächlich der Quarzt, der nicht richtig lief. Neuer drauf und alles gut.
        Dir noch einmal vielen Dank!!!

        • admin_ub sagt:

          ist also nicht immer die Software schuld :-) Viel spass damit.

  5. Quentin sagt:

    Hallo,

    danke schön für dein lib.

    Du hast ein lib für DCMI mit ov9655 gemacht. Ist es möglich die DCMI interface zu benutzen mit die STM32F4 discovery Karte?

    Es sieht nicht möglich aus weil Speicher ist angeschlossen aus die Pin mit DCMI.

    Ist es möglich dieses Pin zutauschen?

    Danke für alles. Schönes Tag.

    • admin_ub sagt:

      Es ist nicht notwendig Pins zu tauschen. Es sind zwar einige Pins schon belegt, aber wenn CS43L22 und LIS302 nicht benutzt werden geht es auch so. Siehe : http://mikrocontroller.bplaced.net/wordpress/?page_id=1115 . Die Pinbelegung steht im C-File.

  6. Samuel sagt:

    Hi Uwe,
    ich finde deine Librarys echt spitze, sauber übersichtlich programmiert und gut kommentiert.
    Hab schon einige am laufen (USB_CDC , Can, ADC, Uart, ExtiI … )

    Vielen Dank für deine tolle Arbeit

  7. Jones sagt:

    Ich möchte mich für deine Bemühungen bedanken. Ich finde es großartig, dass du uns deine Libs zur verfügung stellst. Selbst wenn ich sie nicht immer direkt verwende, helfen sie doch ungemein bei manchen Verständnisproblemen.

    Vielen Dank

  8. Tamer SAFAK sagt:

    Hello,

    Great job,
    Could you give an example about sdcard via spi?

    Regards,

    • admin_ub sagt:

      i dont have a spi library for sd-cards yet…i can try to write one.
      but i dont see any benefit to my 1bit SDIO version
      this needs even one pin less than a 4wire spi.

      • Tamer SAFAK sagt:

        I’ll use when SDIO pins are blocked or for stm32f0

        • admin_ub sagt:

          the new lib Nr.89 is now with SPI.

  9. peter pan sagt:

  10. Tamer SAFAK sagt:

    Hello, thank you again for “spi-fat lib”.

    RFID and enc28j60 libraries will be very good though.

    Happy new year,

  11. Hallo Uwe,

    Ich hab dir eine E-mail geschrieben und die Befürchtung sie könnte vielleicht im Spamordner gelandet sein. Wäre super wenn du mal nachschauen könntest.

    Liebe Grüße

    Frederik Löw

    • admin_ub sagt:

      hab schon geantwortet

  12. Kris sagt:

    Moin, erstmal großes Lob für die vielen Libs, benutze einige davon in eigenen Projekten. Hilft auch gut beim Verständnis neuer Hardware.
    Ich wollte mal fragen, ob du zufällig schon Erfahrungen mit UMTS/GPS-Modulen hast, da ich momentan in der Richtung recherchiere. Ich tendiere momentan zu einem R-GM862-G4, hast du da eine Meinung zu?

    Schönen Gruß,
    Kris

    • admin_ub sagt:

      uhh…da kenne ich mich gar nicht aus, sorry.

  13. Subi jo sagt:

    Hello,

    This examples are very good. I have learnt a lots from them. Thanks… But I would like to ask that can I use the PS2 example program for STM32F0xx_DISCOVERY board.

    Best Regards,

    Subi Jo

    • admin_ub sagt:

      of course..why not ?
      you need one external interrupt gpio and one normal gpio
      thats all.

  14. Subi jo sagt:

    Hello,
    Thank so much for your quick answer. I tryed to translate your ps2 program to stm32f0xx-DISCOVERY board but I loged. I got the the mistake “Error[Pe020]: identifier “RCC_AHB1Periph_GPIOA” is undefined to be connected with to enable clock with “RCC_AHB1PeriphClockCmd(PS2_KEY_DATA_GPIO_CLK, ENABLE);” command. I am very bushed. Please help me if it is possible. I welcome any advice with pleasure.

    Best regards,

    Subi Jo

    • admin_ub sagt:

      you must include the GPIO and RCC header files for a F0 cpu
      these are different to my F4 includes.
      Then check the “xx_gpio.h” and “xx_rcc.h” files for the right
      defines und function names.
      Or copy&paste the lines from a st example for the F0.
      here is a link to a F0 GPIO tutorial :
      http://hsel.co.uk/2014/05/31/stm32f0-tutorial-1-gpio/
      change : “RCC_AHB1Periph_GPIOA” to : “RCC_AHBPeriph_GPIOA”
      change : “RCC_AHB1PeriphClockCmd” to : “RCC_AHBPeriphClockCmd”
      and so on

  15. Subi Jo sagt:

    Hello,
    Sorry for my late answer. Thank you for your advice. I will try it after I will write to you.
    Best regards,
    Subi Jo

  16. Syed sagt:

    Hi,

    Is there any implementation of LWIP? Can you please send me the link for that.

    Regards,
    Syed

    • admin_ub sagt:

      all ethernet demos on this pages (HTTP, UDP) uses LWIP.

  17. kabasak sagt:

    Hi
    How do I run stm32f051 + stm32f030
    5 days I could not help please
    change
    #include “stm32f0xx.h”
    #include “stm32f0xx_gpio.h”
    #include “stm32f0xx_rcc.h”
    #include “stm32f0xx_spi.h”
    #include “stm32_ub_spi2.h”
    RCC_AHB1PeriphClockCmd(LCD_WRX_GPIO_CLK, ENABLE);
    RCC_AHBPeriphClockCmd(LCD_WRX_GPIO_CLK, ENABLE);
    RCC_AHBPeriphClockCmd(LCD_CS_GPIO_CLK, ENABLE);
    #define LCD_WRX_GPIO_CLK RCC_AHBPeriph_GPIOB
    LCD_CS_GPIO_PORT->BSRR = LCD_CS_PIN;
    LCD_CS_GPIO_PORT->BRR = LCD_CS_PIN;
    LCD_WRX_GPIO_PORT->BSRR = LCD_WRX_PIN;
    LCD_WRX_GPIO_PORT->BRR = LCD_WRX_PIN;
    {GPIOB,GPIO_Pin_13,RCC_AHBPeriph_GPIOB,GPIO_PinSource13}, // SCK
    RCC_AHBPeriphClockCmd(SPI2DEV.SCK.CLK, ENABLE);
    GPIO_PinAFConfig(SPI2DEV.SCK.PORT, SPI2DEV.SCK.SOURCE, GPIO_AF_0);
    SPI_I2S_SendData16(SPI2, wert);

    I made the changes did not work
    please help me
    STM32F051R8 disco spi ili9341
    Thank you.

    • admin_ub sagt:

      my libs only work on STM32F4 (not on F0)
      please check demo files from st for the F0 series.
      i dont have a F0 so i cant help.

  18. tyros sagt:

    Danke fuer die super LIB’s.
    Bin Neueinsteiger bei den ARM’s.
    Bitte weiter so!!!!

  19. Christophe sagt:

    Hallo Uwe,

    Sind deine Bibliotheken grundsätzlich auf dem stm32f415 lauffähig?

    Ich habe nämlich im ‘RM0090 Reference manual’ gelesen, dass es doch grundsätzliche Unterschiede zwischen den 405/415 und 429/429 gibt.
    Die UART Bibliothek zB funktioniert bei mir nicht auf Anhieb, sprich es werden Daten ausgegeben, die jedoch im seriellen Monitor keinen Sinn machen.

    Könnte das eventuell an unterschiedlichen Timern liegen?

    Viele Grüße,
    Christophe

  20. Andrey sagt:

    Ich bin sehr froh, dass Ihre Website wieder erschienen!!!! Danke !

  21. Alfi sagt:

    Tolle Arbeit!
    Es gibt von NXP einen neuen PHY (BroadR-Reach) für Automotive Ethernet. Glauben Sie, dass man es mit dem STM32 zum laufen kriegen kann? Im Bereich Ethernet bin ich noch ein Anfänger.

  22. Mike sagt:

    Ich möchte nur kurz fragen, ob es nicht schon vkm Hersteller Bibliotheken gibt? Deine eigenen bauen ja auch auf bereits fertige Header auf, daher meine Frage ;)

    • admin_ub sagt:

      du kannst STM-Cube und die HAL von STM benutzen, das deckt die LoLevel Sachen grob ab.

  23. Kendo sagt:

    Vielen Dank!
    Endlich konnte ich den Umstieg von AVR zu STM32F4 vornehmen.

    Dank diesen tollen Beispielen fast ein Kinderspiel.

    Ohne Deine gute Vorarbeit, wär’s ein harten Brocken geworden! Danke!!!

    Konnte das eine oder andere Beispiel, mit aufwändigem Manual-Studium erweitern.

    So z.B. PWM mit Puls-breite und Frequenz-anpassung für jeden einzeinen Puls im TIM1_UP_TIM10_IRQHandler().

    Natürlich mit PreloadConfig und TIM_CounterMode_CenterAligned1
    Ich hab da aber glich noch nen Frage:
    Welche Vorlage nimmst (oder würdest) Du für Realisierung eines PID-Reglers?

    Eigentlich wollte ich meine “next genrations” mit dem ESP32 realisieren. Klappt sehr schön!!
    Bin aber bei den Timern, an die Grenzen gestossen ( keine PreLoadRegister)
    (OHNE RTOS in meinem Fall, eine der beiden CPUs dedicated
    Was hast Du zu diesen Dingern zu sagen?

    Gruss Kendo


Wie hat Dir dieser Artikel gefallen?

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (2 Bewertungen, Durchschnitt: 5,00 von 5)
Loading...

5 Antworten zu Komplette-Library-Liste (STM32F4)

  1. amasel sagt:

    hello!
    bonjour
    Je tiens à vous remercier pour vos efforts,
    svp pouvez-vous m’aider à configurer le module WIFI esp8266ex sous coocox, je suis débutante et je n’ai pas arriver à une solution qui compile correctement.
    merci d’avance
    cordialement

  2. Rene B sagt:

    Hallo

    ich habe eine kurze Frage. Weniger zu den Libraries als eher eine Generelle Frage zum STM32F4.
    Ich versuche mich gerade an einer Full Duplex I2S DMA Übertragung um mir ein kleines Effektgerät zu bauen. Ich stolpere gerade aber ein bissl darüber ob der Voll Duplex Mode überhaupt so funktionieren kann. Hast du vllt mal Voll Duplex mit DMA (und nach Möglichkeit mit Circular Buffer) ausprobiert und kannst mir sagen ob das generell Funktioniert ? Bin da gerade etwas verwirrt, zumal ich tlw gelesen habe das das eben nicht möglich sein soll.

    Gruß
    Rene

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert