STM32 Geliştirme Kartı nasıl programlanır


17

ARM mikrodenetleyicilerini programlamaya tamamen yeni başlıyorum, ancak AVR ve PIC mikrodenetleyicileriyle ilgili deneyimim var.

Birkaç gün önce eBay'den bir STM32F103VET6 geliştirme kartı satın aldım. Şimdi bu tahtayı programlamaya çalışıyorum ama nereden başlayacağımı bilmiyorum. Ayrıca bazı veri sayfaları ve bazı belgeler (hepsi Çince) içeren bir CD aldım.

Birisi bana nasıl başlayacağımı söyleyebilir mi? Yoksa birinin kaynak örnekleri var mı?

Keil uVision4'ü zaten kurdum. Ayrıca bir J-link hata ayıklayıcı var.


2
Bunun neden seçildiğinden emin değilim. Net bir soruya benziyor, düzgün bir şekilde ifade edildi ve OP kendine yardım etmeye çalıştı. Geliştirme / tasarım ile ilgilidir, bu yüzden konuya benziyor. Oy verildi.
icarus74

Bu ebay üzerinde dev panoları satın almanın dezavantajlarından biridir, özellikle de doğudan nakliye yapanları. Çoğu zaman, yerel pazar için tasarlanmıştır ve yüksek kaliteli bir ingilizce (onlar için bir yabancı dil) el kitabı oluşturmak, bir kullanıcı forumunu tohumlamak / geliştirmek / korumak çok fazla maliyet ve güçlüktür. Ayrıca bu zaten biraz daha pahalı panoları tarafından sunulan bir pazar. Söyledikten sonra, geçmişte bunu zor yoldan öğrendim ve google çevirmen kullanarak Çince el kitabının çoğunu İngilizce'ye çevirdim. Mükemmel olmaktan uzak, ama beni harekete geçirdi.
icarus74

Açıkçası, bir fotoğraf görüntüsü değil, ayrık karakterler olarak metin içeren kılavuzun bir kopyasına ihtiyacınız var. OCR'd metni bu yaklaşım için kesinlikle hayır.
icarus74

Oh, ve bir şey daha. Bu uzak doğu dev kurullarının çoğu, Olimex, IAR vb. Tabii ki, gotchas olabilir. Ve bu zaman zaman para tasarrufu için ödediği fiyat :-)
icarus74 4

Yanıtlar:


5

Görmek istiyorsan göz kırpma örneğim var

#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

Ayrıca çok uygun fiyatlı STM32 Keşif tahtasına bakın. Başlamak için iyi yazılım araçlarıyla birlikte çok yararlı bir öğreticiye sahip olan Github'daki texane / stlink projesinin bir kopyasını alın.

Tahtayı çeşitli yerlerden alabilirsiniz.

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

İşte Github'daki stlink projesi.

https://github.com/texane/stlink


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.