Getting Started STM32F103C Board with Arduino IDE [EP1]

การทดลองนี้เป็นการเรียนรู้การใช้งานบอร์ด STM32F103C8T6 สำหรับเป็นความรู้พื้นฐานนำไปประยุกต์ใช้งานต่างๆ เพิ่มเติม โดยในการทดลองในตอนที่ 1 จะเป็นการติดตั้งบอร์ด STM32F1038T6 มายังโปรแกรม Arduino IDE, การกำหนดใช้งานบอร์ด STM32F1038T6 ในโปรแกรม Arduino IDE และการทดลองอัพโหลดโปรแกรมคำสั่งสำหรับทดสอบการทำงาน ระหว่างโปรแกรม Arduino IDE และบอร์ด STM32F103C8T6 สำหรับเริ่มต้นการใช้งานต่างๆ ต่อไป


รูปที่ 1 และรูปที่ 2 แสดงลักษณะของบอร์ด STM32F103C8T6 และตำแหน่งขาใช้งานต่างๆ รวมทั้งฟังก์ชั่นที่เราสามารถใช้งานได้ ส่วนในรูปที่ 2 เป็นการเชื่อมต่อบอร์ด USB to Serial กับบอร์ด STM32F103C8T6 สำหรับโปรแกรมคำสั่ง, การต่อแอลอีดีที่ขา PB12, การต่อสวิตช์ที่ขา PB0 และการต่อตัวต้านทานปรับค่าที่ขา PA0 สำหรับการทดลองในครั้งต่อไป

https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json


รูปที่ 3 ถึงรูปที่ 5 แสดงการอัพเดตบอร์ดควบคุมที่ทำการติดตั้งเพิ่มเติม (แบบที่ 1) ในโปรแกรม Arduino IDE โดยเริ่มจากไปที่เมนู File→Preferences จากนั้นคัดลอกลิงก์ https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json ไปวางที่ช่อง Additional Boards ต่อมาไปที่เมนู Tools→Boards Manager และติดตั้งบอร์ดควบคุม Arduino SAMD Boards

รูปที่ 6 แสดงการติดตั้งบอร์ด STM32F103C8T6 (แบบที่ 2) ด้วยการดาวน์โหลดไฟล์
Arduino_STM32 [ดาวน์โหลด STM32F103C Board คลิกที่นี่] จากนั้นนำไฟล์ที่ได้ไปวางในโฟลเดอร์ hardware ของโปรแกรม Arduino IDE ที่เราทำการติดตั้งอยู่ และทำตามขั้นตอนในรูปที่ 4 และรูปที่ 5 ตามลำดับ

ในรูปที่ 7 หลังจากติดตั้งบอร์ด STM32F103C ในโปรแกรมแล้ว จากนั้นจะเป็นการกำหนดค่าต่างๆ ให้กับโปรแกรม Arduino IDE สำหรับใช้งานบอร์ด STM32F103C8T6 โดยแนะนำให้กำหนดค่าเริ่มต้นการใช้งานตามรูปที่ 7 ในกรอบสีแดง สำหรับเริ่มต้นการทดลองใช้บอร์ด STM32F103C8T6
// Test LED Pin PC13
void setup() {
pinMode(PC13, OUTPUT);
}
void loop() {
digitalWrite(PC13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(200); // wait for a second
digitalWrite(PC13, LOW); // turn the LED off by making the voltage LOW
delay(200); // wait for a second
}

รูปที่ 8 เป็นการปรับจั้มเปอร์เพื่อกำหนดโหมดใช้งานบอร์ด STM32F103C8T6 สำหรับโปรแกรมผ่านบอร์ด USB to Serial จากนั้นให้ใช้โปรแกรมทดสอบการทำงานที่แสดงข้างบน (Test LED Pin PC13) และทำการอัพโหลดโปรแกรมไปยังบอร์ด STM32F103C8T6 [*** ก่อนการอัพโหลดโปรแกรมจะต้องกดสวิตช์ RESET บนบอร์ด STM32F103C8T6 เพื่อเข้าโหมดโปรแกรม ***]

สำหรับในรูปที่ 9 แสดงช่วงการอัพโหลดโปรแกรมและข้อความสถานะที่เกิดขึ้นเมื่อกำหนดค่าต่างๆ ของโปรแกรม Arduino IDE ได้ถูกต้อง และสุดท้ายจะเป็นคลิปวิดีโอแสดงผลการทดลองเมื่ออัพโหลดโปรแกรมเรียบร้อย ท้ายนี้กับการเริ่มต้นเรียนรู้บอร์ดควบคุม STM32F103C8T6 ในตอนที่ 1 นี้จะเป็นแนวทางของการทดลองการใช้งานฟังก์ชั่นต่างๆ ในตอนต่อไป
Reference
- https://www.st.com/en/microcontrollers-microprocessors/stm32f103.html
- https://www.st.com/resource/en/datasheet/stm32f103c8.pdf
- https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json
- https://www.pcb-hero.com/blogs/lickys-column/stm32f103c8t6-blue-pill-development-board
- https://forum.arduino.cc/t/wiring-uart-communication-between-arduino-nano-softserial-and-stm32f103c8t6/638799/2
- https://reversepcb.com/stm32f103c8t6/
- https://www.instructables.com/How-to-Program-STM32F103C8T6-With-ArduinoIDE/