[Arduino] ติดตั้ง STM32Duino ใน ArduinoIDE กันครับ
![[Arduino] ติดตั้ง STM32Duino ใน ArduinoIDE กันครับ](https://thanapon.info/wp-content/uploads/2020/11/New-Project7.png)
หลังจากที่ห่างหายจากการเล่นอุปกรณ์ Hardware ไปนาน ปรากฎว่าผมลืมวิธีเขียนโปรแกรมไปเยอะเลยทีเดียว วันนี้ก็ได้มีโอกาสกลับมาทบทวนการใช้งาน บอร์ด STM32F103C8T6 หรือเรียกสั้นๆว่า Bluepill ละกันนะครับ โดยส่วนตัวคิดว่าทำไมถึงใช้บอร์ดตัวนี้ก็เพราะว่ามันมีราคาถูกดี + spec มันจัดจ้านซะเหลือเกิน จริงๆบทความนี้ก็ไม่ค่อยมีอะไรมากหรอกครับ เป็นการติดตั้ง STM32Duino เข้าไปใน Arduino IDE เพื่อให้มันสามารถ compile โค๊ดแล้วยัดลงบอร์ด STM32Fxx เฉยๆครับ จากปกติเราใช้ ArduinoIDE เขียนโปรแกรมเพื่อควบคุมบอร์ดตระกูล Arduino กับ ESPxx กันอยู่แล้ว
ก่อนอื่นผมขอเปรียบเทียบ Spec ระหว่าง STM32F103C8T6 กับ Arduino Pro mini
![Image for post](https://miro.medium.com/max/873/1*QXHFNEFI80EsClsyibO8nA.png)
![Image for post](https://miro.medium.com/max/1030/1*lH13bx-OzuJKV9nAXCYbXw.png)
จากตารางข้างบนผมได้เปรียบเทียบกันในด้านของ Specification ระหว่าง STM32F103C8T6 กับ ATmega328p ซึ่งจะเห็นได้ว่าต่างกันพอสมควรเลยทั้งในด้านของ Architecture, CPU Freq, RAM, Flash Memory, ความละเอียดของ ADC และการเชื่อมต่อกับอุปกรณ์ภายนอก ซึ่ง STM32F103C8T6 นั้นรองรับได้มากกว่า
จากที่ได้ข้อสรุปแล้วว่าทำไมต้องใช้ STM32F103C8T6แล้วปัญหาต่อมาก็คือ เอ๊ะ!! เราจะโปรแกรมบอร์ดนี้ยังไงดีอ่ะ ซึ่งปกติผมก็ใช้แค่ ArduinoIDE นี่ หน่าา
แต่นี้ไม่ใช่ปัญหาครับ เราก็แค่ติดตั้ง STM32Duino เข้าไปใน ArduinoIDE เลยก็จบเรื่องไง!!!
STM32Duino คือ Arduino Core ที่ทำให้เราสามารถโปรแกรมบอร์ดตระกูล STM32F1xx โดยใช้ ArduinoIDE เป็น Editor สำหรับเขียนโปรแกรมซึ่งการติดตั้งนั้นก็ง่ายแสนง่ายครับ
มาเริ่มติดตั้ง STM32Duino กันเลยนะครับ
อันดับแรกให้เราเพิ่ม Additional Boards Manager URL ซึ่งเข้าไปที่ File > Preferences
http://dan.drown.org/stm32duino/package_STM32duino_index.json
![Image for post](https://miro.medium.com/max/1061/1*xjT99zzrWWCOMMoiU0brqw.png)
หลังจากนั้นเข้าไป Tools > Board > Boards Manager … เพื่อจะได้เข้าไปดาวน์โหลด Additional board ตามที่เราต้องการได้ เมื่อเข้าไปหน้า Board Manager แล้วต้องรอให้ ArduinoIDE ทำการดาวน์โหลดข้อมูลจาก URL ที่เราเพิ่มไปก่อนหน้านี้ด้วยนะครับ
![Image for post](https://miro.medium.com/max/1063/1*ZNxVx0MiYVTPMedkF8lujg.png)
หลังจาก Board Manager ทำการดาวน์โหลดข้อมูลเสร็จแล้วให้ค้นหาบอร์ด stm32f1 แล้วทำการกดติดตั้งได้เลยครับ เมื่อติดตั้งเสร็จก็ปิดหน้าต่างแล้วไปดูบอร์ดที่เราติดตั้งไปนั้นมีแสดงในรายการ Board ไหม
![Image for post](https://miro.medium.com/max/789/1*yVXbekPvBPBjFZfSTSfV3g.png)
ก็สำหรับใครถ้ามีรูปตามข้างล่างนี้ ก็ถือว่าติดตั้งสำเร็จแล้วครับ ต่อไปก็ลองมาอัพโหลด Sketch Arduino เข้าไปบอร์ดได้เลยนะครับ
![Image for post](https://miro.medium.com/max/379/1*OEsRK6OsCst3IZUgOZYQkg.png)
เริ่มต้นอัพโหลด Code ที่เราเขียนไปยังบอร์ด Bluepill
อุปกรณ์ที่เราจำเป็นต้องมีนะครับ
– USB to Serial
– STM32F103C8T6[Bluepill]
สำหรับการต่อสายก็ต่อตามรูปเลยครับ
![Image for post](https://miro.medium.com/max/546/1*nu2ruy3MqkZlxInh4r9QKg.png)
หลังจากนั้นให้เปลี่ยนตำแหน่งการ Jumper ของ BOOT0 เป็น Programming Mode อันนี้จำเป็นต้องเปลี่ยนนะครับ
เมื่อต่อสายเสร็จ ถึงคราวที่เราต้องมาตั้งค่า Board ใน ArduinoIDE กันบ้างนะครับ โดยให้เลือก Board เป็น Generic STM32F103C8T6 series หลังจากนั้นเลือก Upload Method เป็น Serial ก็ถือว่าเสร็จสิ้นครับ เตรียมตัวอัพโหลดโค๊ดกัน
![Image for post](https://miro.medium.com/max/375/1*lXZpSofMYJd57HmU7wMzKA.png)
จากตัวอย่างโค๊ดด้านล่างนี้ผมแค่จะทดสอบการ Blink ของ Built-in LED เฉยๆนะครับ
void setup() {
pinMode(PC13, OUTPUT);
}
void loop() {
digitalWrite(PC13, HIGH);
delay(1000);
digitalWrite(PC13, LOW);
delay(1000);
}
โค๊ดพร้อมบอร์ดพร้อมใจคุณพร้อมอ่ะป่าวว
ถ้าพร้อมก็กด Upload Sketch ได้เลยครับ
![Image for post](https://miro.medium.com/max/600/1*b74lW5DzmN9WL_2OspeGow.gif)
เย้!!!! สำเร็จแล้ว ง่ายจริงๆใช่ไหม
ก็เป็นอันเสร็จสิ้นการติดตั้ง STM32Duino ครับ หากข้อมูลผิดพลาดประการใดก็ขออภัยด้วยนะครับ ขอบคุณและสวัสดีครับ 🙂