Comment programmer la carte de développement STM32

17

Je suis un débutant total en programmation de microcontrôleurs ARM, mais j'ai de l'expérience avec les microcontrôleurs AVR et PIC.

Il y a quelques jours, j'ai acheté une carte de développement STM32F103VET6 sur eBay. J'essaie maintenant de programmer ce forum mais je ne sais pas par où commencer. J'ai également reçu un CD contenant des fiches techniques et des documents (tous en chinois).

Quelqu'un pourrait-il me dire comment commencer? Ou quelqu'un a-t-il des échantillons sources?

J'ai déjà installé Keil uVision4. J'ai également un débogueur J-link.

Power-Mosfet
la source
2
Je ne sais pas pourquoi cela a été rejeté. On dirait une question claire, correctement articulée, et OP a essayé de s'aider lui-même. Se rapporte au développement / design, semble donc sur le sujet. A voté.
icarus74
C'est l'un des inconvénients de l'achat de cartes de développement sur ebay, en particulier celles expédiées d'Extrême-Orient. Souvent, ils sont conçus pour le marché local, et pour obtenir un manuel anglais de haute qualité (une langue étrangère pour eux) créé, semer / développer / maintenir un forum d'utilisateurs est trop coûteux et compliqué. C'est également un marché déjà desservi par des planches légèrement plus chères. Cela dit, dans le passé, j'ai appris cela à la dure et j'ai fini par traduire la plupart des parties du manuel en chinois vers l'anglais à l'aide de Google Translator. Loin d'être parfait, mais ça m'a fait bouger.
icarus74
De toute évidence, vous avez besoin d'une copie électronique du manuel, qui a du texte sous forme de caractères discrets, pas une photo-image. Le texte OCR est un non-non strict pour cette approche.
icarus74
Oh, et encore une chose. La plupart de ces cartes de développement d'Extrême-Orient sont des imitations à 100% de certaines cartes de développement par des sociétés réputées comme Olimex, IAR, etc. Bien sûr, il pourrait y avoir des accrochages. Et c'est le prix que l'on paie pour économiser de l'argent, parfois :-)
icarus74

Réponses:

5

J'ai un exemple de clignotant si vous voulez voir

#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--);
}
Rick Ant
la source
3

Regardez également la carte STM32 Discovery très abordable. Récupérez une copie du projet texane / stlink sur Github, qui a un tutoriel très utile ainsi que de bons outils logiciels pour commencer.

Vous pouvez obtenir la planche à différents endroits.

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

Voici le projet stlink sur Github.

https://github.com/texane/stlink

Will Ware
la source