Cách lập trình Ban phát triển STM32


17

Tôi là người mới bắt đầu với lập trình vi điều khiển ARM, nhưng tôi có kinh nghiệm với vi điều khiển AVR và PIC.

Vài ngày trước, tôi đã mua một bảng phát triển STM32F103VET6 từ eBay. Bây giờ tôi đang cố gắng lập trình bảng này nhưng tôi không biết bắt đầu từ đâu. Tôi cũng đã nhận được một đĩa CD chứa một số datasheets và một số tài liệu (tất cả đều bằng tiếng Trung Quốc).

Ai đó có thể cho tôi biết làm thế nào để bắt đầu? Hoặc ai đó có một số mẫu nguồn?

Tôi đã cài đặt Keil uVision4. Tôi cũng có một trình gỡ lỗi J-link.


2
Không chắc chắn tại sao điều này đã được bỏ phiếu xuống. Có vẻ như một câu hỏi rõ ràng, được nói rõ, và OP đã cố gắng tự giúp mình. Liên quan đến phát triển / thiết kế, vì vậy có vẻ như trên chủ đề. Bỏ phiếu lên.
icarus74

Đây là một trong những nhược điểm của việc mua bảng dev trên ebay, có nghĩa là những người vận chuyển từ viễn đông. Thông thường, chúng được thiết kế cho thị trường địa phương và việc tạo ra một hướng dẫn sử dụng tiếng Anh chất lượng cao (tiếng nước ngoài cho chúng), gieo / phát triển / duy trì diễn đàn người dùng là quá nhiều chi phí và rắc rối. Ngoài ra, đó là một thị trường đã được phục vụ bởi các bảng đắt hơn một chút. Phải nói rằng, trong quá khứ tôi đã học được điều này một cách khó khăn, và đã chuyển sang dịch hầu hết các phần của hướng dẫn bằng tiếng Trung sang tiếng Anh bằng cách sử dụng google dịch. Xa hoàn hảo, nhưng đã khiến tôi di chuyển.
icarus74

Rõ ràng, bạn cần một bản mềm của hướng dẫn sử dụng, có văn bản dưới dạng các ký tự riêng biệt, không phải là hình ảnh. Văn bản của OCR là không nghiêm ngặt đối với phương pháp này.
icarus74

Oh, và một điều nữa. Hầu hết các bảng dev ở phía đông này là ~ 100% loại bỏ một số bảng dev của các công ty có uy tín như Olimex, IAR, v.v. Vì vậy, một kiểm tra trực quan chi tiết về bảng của bạn và những bảng khác có thể khá lộ liễu. Tất nhiên, có thể có gotchas. Và đó là cái giá mà người ta phải trả cho việc tiết kiệm tiền, vào những thời điểm :-)
icarus74

Câu trả lời:


5

Tôi có ví dụ về Blinker nếu bạn muốn xem

#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

Cũng nhìn vào bảng STM32 Discovery rất phải chăng. Lấy một bản sao của dự án texane / stlink trên Github, trong đó có một hướng dẫn rất hữu ích cùng với các công cụ phần mềm tốt để bắt đầu.

Bạn có thể nhận được bảng ở những nơi khác nhau.

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

Đây là dự án stlink trên Github.

https://github.com/texane/stlink


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.