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
- Arduino IDE bản mới nhất (tốt nhất là 1.6.9 trở lên)
- Phiên bản Arduino & STM
- TXRX dll
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.bat
và install_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