STM32 và Arduino

Mình xin chia sẻ thêm một cách để lập trình cho STM32 với phong cách của Arduino, dùng IDE của Arduino, cách code cũng giống arduino luôn để mọi người có thể biến kit STM32 của mình thành phiên bản có thể dễ dàng lập trình nhất
Đầu tiên mình cũng xin cảm ơn bạn PHAMNHU(nick name Buồn Cười Cực) đã chia sẻ cho mọi người.

Chuẩn bị

Phần cứng

  • Kit hoặc mạch STM32F1
  • Mạch nạp ST-link (nếu kit bạn có rồi thì bỏ qua)

Phần mềm

Cài đặt

Các bạn theo từng bước sau

Bước 1: Cài đặt Arduino IDE, nếu bạn cài rồi thì bỏ qua, mặc định cài Arduino sẽ vào ổ C

Ví dụ như của mình là C:\Program Files (x86)\Arduino

Bước 2: Giải nén Arduino & STM đã tải ở trên ra rồi đổi tên thành STM32, sau đó copy hoặc move toàn bộ thư mục này vào thư mục hardware của Arduino

Ví dụ của mình sẽ là C:\Program Files (x86)\Arduino\hardware

Kiểm tra lại một chút trong thư mục STM32 có gì nào

Bước 3: Cắm sẵn mạch nạp ST-link vào kit STM32F1 của bạn

Bước 4: Cài đặt thêm một số drivers tại đường dẫn C:\Program Files (x86)\Arduino\hardware\STM32\drivers\win

Chạy 2 file install_drivers.batinstall_STM_COM_drivers.bat và chờ đợi tới thông báo Press any key to continue là xong

Bước 5: Tiếp tục vào thư mục C:\Program Files (x86)\Arduino\hardware\STM32\tools\win chạy các file sau stlink_upload.bat serial_upload.bat maple_upload.bat và tiếp tục chờ đợi

Bước 6: Copy TXRX dll về thư mục C:\Program Files (x86)\Arduino

Bước 7: Tạo một thư mục có tên Arduino ở ổ D để chứa file build ra từ Arduino, đường dẫn của thư mục này sẽ là D:\Arduino

Bước 8: Mở Arduino ấn Ctr + , để vào Preferences, chọn phần có preferences.txt để vào thư mục chứa file, sau đó mở file này ra chỉnh sửa

Thêm dòng build.path = D:\Arduino vào dòng cuối cùng của file preferences.txt, thế là tạm xong bước cấu hình

Bước 9: Mở arduino IDE, cài Arduino SAM Board M3 bằng cách chọn Tool -> Board -> Board Manager, chọn board và install

Bước 10: Cấu hình chọn board xíu

Chọn board tương ứng với chip F1 của bạn nhé, mình dùng series R nên chọn STM32F103R series

Tiếp tục chọn cách để nạp chương trình, do kit F1 của mình là trắng tinh nên phải nạp qua ST-Link thôi

Bước 11: Chỉnh sửa lại chương trình Blink xíu, kit của mình có 3 LED tại chân PB5,PB6,PB7 nên cho blink tại đây luôn

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.
  Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO 
  it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN takes care 
  of use the correct LED pin whatever is the board used.
  If you want to know what pin the on-board LED is connected to on your Arduino model, check
  the Technical Specs of your board  at https://www.arduino.cc/en/Main/Products
  
  This example code is in the public domain.
  modified 8 May 2014
  by Scott Fitzgerald
  
  modified 2 Sep 2016
  by Arturo Guadalupi
*/
#define LED PB5   //Định nghĩa chân LED

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

Kết quả

Ta quan sát Blink LED trên kit thôi

Nếu còn gặp trục trặc trong quá trình cài đặt thì bạn có thể tham khảo thêm video

Tạm kết

Thế là xong được một số cài đặt, cấu hình cơ bản để biến STM32F1 thành dễ dàng lập trình như Arduino, chắc chắn là code và một số thư viện từ Arduino chuyển sang sẽ có vấn đề, mình sẽ thử và cập nhật thông tin sớm cho mọi người. Giờ thì tranh thủ lấy board này thay cho TIVA C trong con BOT nông nghiệp thôi