STM32 개발 보드를 프로그래밍하는 방법


17

ARM 마이크로 컨트롤러 프로그래밍을 처음 시작했지만 AVR 및 PIC 마이크로 컨트롤러에 대한 경험이 있습니다.

며칠 전 eBay에서 STM32F103VET6 개발 보드를 구입했습니다. 나는 지금이 보드를 프로그래밍하려고하지만 어디서부터 시작해야할지 모르겠다. 또한 일부 데이터 시트와 일부 문서 (모두 중국어)가 들어있는 CD를 받았습니다.

누군가 어떻게 시작하는지 말해 줄 수 있습니까? 아니면 누군가 소스 샘플이 있습니까?

Keil uVision4를 이미 설치했습니다. J- 링크 디버거도 있습니다.


2
왜 이것이 투표에 실패했는지 잘 모르겠습니다. 분명한 질문처럼 보이며 올바르게 설명되어 있으며 OP는 자신을 돕기 위해 노력했습니다. 개발 / 디자인과 관련이 있으므로 주제에 관한 것 같습니다. 투표함.
icarus74

이것은 이베이에서 개발 보드를 구매할 때의 단점 중 하나입니다. 종종, 그들은 현지 시장을 위해 설계되었으며, 사용자 포럼을 파종 / 개발 / 유지 / 유지하기 위해 수동으로 고품질의 영어 (외국어) 매뉴얼을 얻는 것이 너무 많은 비용과 번거 로움입니다. 또한 이미 약간 비싼 보드가 제공하는 시장입니다. 과거에 나는 이것을 어려운 방법으로 배웠고 Google 번역기를 사용하여 중국어로 된 설명서의 대부분을 영어로 번역했습니다. 완벽하지는 않지만 움직였습니다.
icarus74

분명히, 텍스트가 사진 이미지가 아닌 개별 문자로 된 매뉴얼의 소프트 카피가 필요합니다. OCR의 텍스트는이 접근법에 대한 엄격한 아니오입니다.
icarus74

아, 그리고 한가지 더. 이 극동 개발 보드의 대부분은 Olimex, IAR 등과 같은 평판이 좋은 회사에 의해 일부 개발 보드의 ~ 100 % 넉 오프입니다. 따라서 보드 및 기타 보드에 대한 자세한 육안 검사는 상당히 드러날 수 있습니다. 물론 문제가있을 수 있습니다. 그리고 그 가격 하나 :-) 시간, 비용을 절감 지불입니다
icarus74

답변:


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 디스커버리 보드도보십시오. Github에서 texane / stlink 프로젝트의 사본을 얻으십시오. 시작하기위한 유용한 소프트웨어 도구와 함께 매우 유용한 자습서가 있습니다.

다양한 장소에서 보드를 얻을 수 있습니다.

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

Github의 stlink 프로젝트는 다음과 같습니다.

https://github.com/texane/stlink


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.