Programmieren der STM32-Entwicklungsplatine


17

Ich bin ein absoluter Anfänger in der Programmierung von ARM-Mikrocontrollern, habe jedoch Erfahrung mit AVR- und PIC-Mikrocontrollern.

Vor ein paar Tagen habe ich ein STM32F103VET6-Entwicklungsboard von eBay gekauft. Ich versuche jetzt, dieses Board zu programmieren, aber ich weiß nicht, wo ich anfangen soll. Ich habe auch eine CD erhalten, die einige Datenblätter und einige Dokumente enthält (alle in Chinesisch).

Kann mir jemand sagen, wie ich anfangen soll? Oder hat jemand ein paar Quell-Samples?

Ich habe Keil uVision4 bereits installiert. Ich habe auch einen J-Link-Debugger.


2
Nicht sicher, warum dies abgelehnt wurde. Sieht aus wie eine klare Frage, richtig artikuliert, und OP hat versucht, sich selbst zu helfen. Bezieht sich auf Entwicklung / Design, scheint also themenbezogen. Abgestimmt.
Ikarus74

Dies ist einer der Nachteile des Kaufs von Entwickler-Boards bei ebay, besonders wenn diese aus dem Fernen Osten geliefert werden. Oftmals sind sie für den lokalen Markt konzipiert und es ist zu kostspielig und mühsam, ein qualitativ hochwertiges Englisch-Handbuch (für sie eine Fremdsprache) zu erstellen. Auch das ist ein Markt, der bereits von etwas teureren Boards bedient wird. Allerdings habe ich das in der Vergangenheit auf die harte Tour gelernt und bin mit dem Google Übersetzer dazu gekommen, die meisten Teile des Handbuchs auf Chinesisch in Englisch zu übersetzen. Weit davon entfernt, perfekt zu sein, aber mich in Bewegung zu bringen.
Ikarus74

Natürlich benötigen Sie eine Softcopy des Handbuchs, die Text als diskrete Zeichen und kein Foto enthält. OCR-Text ist ein striktes Nein-Nein für diesen Ansatz.
Ikarus74

Oh, und noch eine Sache. Die meisten dieser fernöstlichen Entwickler-Boards sind ~ 100% ige Kopien einiger Entwickler-Boards von renommierten Unternehmen wie Olimex, IAR usw. Eine detaillierte visuelle Überprüfung Ihres Boards und der anderen Boards kann daher recht aufschlussreich sein. Natürlich könnte es Fallstricke geben. Und das ist der Preis, den man manchmal bezahlt, um Geld zu sparen :-)
icarus74

Antworten:


5

Ich habe zB Blinker wenn du sehen willst

#include "stm32f10x_conf.h"

/* led connected to a gpio pin */
#define LED1_PIN    GPIO_Pin_0
#define LED1_PORT   GPIOB
#define LED2_PIN    GPIO_Pin_3
#define LED2_PORT   GPIOC
#define LED3_PIN    GPIO_Pin_0
#define LED3_PORT   GPIOA
#define LED4_PIN    GPIO_Pin_0
#define LED4_PORT   GPIOE


/* user functions */
void delay(unsigned long count);

int main()
{
    GPIO_InitTypeDef GPIO_InitStructure;



    /* enable clock on GPIOB peripheral */
    //RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
    RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOA, ENABLE);                          


    /* set pin output mode */
    GPIO_InitStructure.GPIO_Pin = LED1_PIN;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(LED1_PORT, &GPIO_InitStructure);
    //LED 2
    GPIO_InitStructure.GPIO_Pin = LED2_PIN;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(LED2_PORT, &GPIO_InitStructure);
    //LED 3
    GPIO_InitStructure.GPIO_Pin = LED3_PIN;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(LED3_PORT, &GPIO_InitStructure);
    //LED 4
    GPIO_InitStructure.GPIO_Pin = LED4_PIN;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(LED4_PORT, &GPIO_InitStructure);
    while(1)
    {
        GPIO_SetBits(LED1_PORT, LED1_PIN);  // set pin high
        delay(2000000);
        GPIO_ResetBits(LED1_PORT, LED1_PIN);    // set pin low
        delay(2000000);

        GPIO_SetBits(LED2_PORT, LED2_PIN);  // set pin high
        delay(2000000);
        GPIO_ResetBits(LED2_PORT, LED2_PIN);    // set pin low
        delay(2000000);

        GPIO_SetBits(LED3_PORT, LED3_PIN);  // set pin high
        delay(2000000);
        GPIO_ResetBits(LED3_PORT, LED3_PIN);    // set pin low
        delay(2000000);

        GPIO_SetBits(LED4_PORT, LED4_PIN);  // set pin high
        delay(2000000);
        GPIO_ResetBits(LED4_PORT, LED4_PIN);    // set pin low
        delay(2000000);
    }
    //return 0;
}



void delay(unsigned long count)
{
    while(count--);
}

3

Schauen Sie sich auch das sehr günstige STM32 Discovery Board an. Besorgen Sie sich eine Kopie des Texane / Stlink-Projekts auf Github, das ein sehr hilfreiches Tutorial sowie gute Software-Tools für den Einstieg enthält.

Sie können die Tafel an verschiedenen Stellen bekommen.

http://www.digikey.com/us/en/ph/ST/STM32_value_line_discovery.html

http://www.mouser.com/stm32discovery

http://www.newark.com/jsp/search/productdetail.jsp?SKU=21T4023

Hier ist das stlink Projekt auf Github.

https://github.com/texane/stlink


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.