Come programmare la scheda di sviluppo STM32


17

Sono un principiante assoluto con la programmazione di microcontrollori ARM, ma ho esperienza con i microcontrollori AVR e PIC.

Qualche giorno fa ho acquistato una scheda di sviluppo STM32F103VET6 da eBay. Sto provando a programmare questa scheda ma non so da dove cominciare. Ho anche ricevuto un CD che contiene alcuni fogli dati e alcuni documenti (tutti in cinese).

Qualcuno potrebbe dirmi come iniziare? O qualcuno ha alcuni campioni di origine?

Ho già installato Keil uVision4. Ho anche un debugger J-link.


2
Non sono sicuro del perché sia ​​stato votato verso il basso. Sembra una domanda chiara, ben articolata, e OP ha cercato di aiutare se stesso. Riguarda lo sviluppo / progettazione, quindi sembra in tema. Votato.
icarus74,

Questo è uno dei lati negativi dell'acquisto di schede di sviluppo su ebay, specialmente quelle di spedizione dall'estremo oriente. Spesso, sono progettati per il mercato locale e ottenere un manuale inglese di alta qualità (una lingua straniera per loro) creato, seminare / sviluppare / mantenere un forum degli utenti è troppo costoso e fastidioso. Anche questo è un mercato già servito da board leggermente più costosi. Detto questo, in passato l'ho imparato nel modo più duro e sono arrivato a tradurre la maggior parte delle parti del manuale in cinese in inglese usando il traduttore di Google. Lungi dall'essere perfetto, ma mi ha fatto muovere.
icarus74,

Ovviamente, hai bisogno di una copia del manuale, che ha il testo come caratteri discreti, non un'immagine fotografica. Il testo OCR è un no-no rigoroso per questo approccio.
icarus74,

Oh, e un'altra cosa. La maggior parte di queste schede di sviluppo dell'estremo oriente sono ~ 100% knock-off di alcune schede di sviluppo di aziende rinomate come Olimex, IAR ecc. Quindi un'ispezione visiva dettagliata della tua scheda e di queste può essere abbastanza rivelatrice. Certo, potrebbero esserci dei gotcha. E questo è il prezzo che uno paga per risparmiare denaro, a volte :-)
icarus74

Risposte:


5

Ho un esempio di lampeggiamento se vuoi vedere

#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

Guarda anche la scheda Discovery STM32 molto conveniente. Prendi una copia del progetto texane / stlink su Github, che ha un tutorial molto utile insieme a buoni strumenti software per iniziare.

È possibile ottenere la scheda in vari luoghi.

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

Ecco il progetto stlink su Github.

https://github.com/texane/stlink


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.