Як запрограмувати Раду розвитку STM32


17

Я абсолютно новачок з програмування мікроконтролерів ARM, але в мене є досвід роботи з мікроконтролерами AVR та PIC.

Кілька днів тому я придбав у eBay плату розвитку STM32F103VET6. Зараз я намагаюся запрограмувати цю дошку, але не знаю, з чого почати. Я також отримав компакт-диск, який містить деякі таблиці даних та деякі документи (усі китайською мовою).

Може хтось скаже мені, як почати? Або хтось має деякі зразки джерела?

Я вже встановив Keil uVision4. У мене також є налагоджувач J-link.


2
Не впевнений, чому це було проголосовано. Виглядає як чітке запитання, правильно сформульоване, і ОП намагалася допомогти собі. Відноситься до розробки / дизайну, так здається тематичним. Голосували.
icarus74

Це один із недоліків купівлі дощок для розробників на ebay, особливо тих, що здійснюють доставку з далекого Сходу. Часто вони розробляються для місцевого ринку, а отримання високоякісної англійської (для них іноземної мови) посібника, створення / висівання / розробка / підтримка форуму користувача - це занадто багато витрат і клопоту. Крім того, це ринок, який вже обслуговують дещо дорожчі дошки. Сказавши це, я в минулому навчився цього важко, і переклав перекладу більшості частин посібника з китайської на англійську за допомогою google-перекладача. Далеко не ідеально, але мене змусило рухатись.
icarus74

Очевидно, що вам потрібна м'яка копія посібника, у якому текст має дискретні символи, а не фото-зображення. Текст OCR'd є суворим "ні-ні" для цього підходу.
icarus74

О, і ще одне. Більшість із цих дощок для розробників на далекому сході - це ~ 100% відключення деяких дощок розробників відомими компаніями, такими як Olimex, IAR тощо. Отже, детальний візуальний огляд вашої ради та цих інших може бути досить показовим. Звісно, ​​там могли бути і ґетчі. І це ціна, яку ви
платите

Відповіді:


5

У мене є приклад блимання, якщо ви хочете побачити

#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

Також подивіться на дуже доступну дошку STM32 Discovery. Візьміть копію проекту texane / stlink на Github, який має дуже корисний підручник, а також хороші програмні засоби для початку роботи.

Ви можете отримати дошку в різних місцях.

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

http://www.mouser.com/stm32відкриття

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

Ось проект stlink на Github.

https://github.com/texane/stlink


2

Тут ви знайдете багато інформації про програмування STM32F103:

http://www.st.com/internet/mcu/product/164486.jsp

з великою кількістю прикладів.

Ви набагато простіше знайдете речі на одній із дощок ST, наприклад на цій:

http://www.st.com/internet/evalboard/product/250863.jsp

Вони коштують дуже недорого і багато документації та прикладів доступні.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.