การใช้งานบอร์ด STM32 STM32F103C8T6 กับ Arduino IDE
บอร์ด STM32 STM32F103C8T6 บอร์ดพัฒนาไมโครคอนโทรลเลอร์ STM32F103C8T6 มีแรม 20KB รอม 64KB รองรับบัส I2C SPI UART และ CAN มี GPIO ทั้งหมด 37 ช่อง และมี ADC 12 บิต ให้ใช้งาน 10 ช่อง ใช้แรงดันไฟฟ้า 3.3V รองรับการทำงานกับ Arduino IDE ใช้ MCU ARM 32 Cortex-M3 CPU. ซึ่งรองรับการทำงานแบบ 32 Bit
คอมไพล์เลอร์ที่นิยมใช้งานกันได้แก่ STM32CubeIDE , AC6 System Workbench for STM32 , ARM Keil MDK , ARM Mbed Online Compiler , Arm Mbed Studio และ Arduino IDE โดยในบทความนี้ จะแสดงการใช้งานบอร์ด STM32 กับ Arduino IDE โดยใช้ระบบปฏิบัติการ Windows 10
ขั้นตอนการทํางาน
1 : เพิ่มบอร์ด STM32 ลงใน Arduino IDE
ติดตั้งบอร์ด STM32 ลงใน Arduino IDE ตามขั้นตอนลิงค์ด้านล่าง
2 : เชื่อมต่อสาย STM32F103C8T6 กับ CP2102 USB
UART หรือชื่อเต็ม Universal Asynchronous Receiver and Transmitter เป็นการสื่อสารข้อมูลผ่านพอร์ตอนุกรมแบบอะซิงโครนัส (asynchronous serial communication) ระหว่างอุปกรณ์ต่าง ๆ ซึ่งนิยมใช้เป็นการสื่อสารระหว่างไมโครคอนโทรลเลอร์ด้วยกัน การทำงานแบบอะซิงโครนัสหมายความว่าจะไม่มีสัญญาณนาฬิกา (clock signal) ส่งออกมาจากตัวส่งหรือตัวรับเพื่อกำหนดจังหวะการรับส่งข้อมูล แต่จะกำหนดผ่านโดยการตั้งความเร็วในการรับส่งข้อมูลของอุปกรณ์ดังกล่าวแทน
การใช้งานร่วมกันระหว่าง STM32F103C8T6 ตัวนี้กับ PC เพื่ออัพโหลดโปรแกรม ก็สามารถทำได้หลายวิธี ซึ่งที่นิยมกันก็คือผ่านทาง STLink หรือ Serial Port ซึ่งในบทความนี้จะใช้การสื่อสารกันผ่านพอร์ตอนุกรม (Serial Port) แบบ UART โดยมีการเชื่อมต่อดังนี้
STM32 | CP2102 USB
PA9 <----> RXD
PA10 <----> TXD
5V <----> +5V
G <----> GND
3 : ตรวจสอบไดร์เวอร์ ของ CP2102 USB
คลิกขวา ที่ Start เลือกไปที่ Device Manager
ไปที่ Ports (COM & LPT) จะพบ Silicon Labs CP210x USB to UART Bridge ในตัวอย่างเป็น (COM6) แสดงว่าคอมพิวเตอร์ของเราสามารถ ติดต่อสื่อสารกับ บอร์ด CP2102 USB ได้แล้ว
4 : อัพโหลดโค้ด STM32
ย้ายจั้มเปอร์สีเหลืองด้านบนให้มาอยู่อีกฝั่ง จาก โหมดใช้งาน เปลี่ยนเป็น โหมดอัพโหลดโปรแกรม
ในตัวอย่างนี้ เราจะมาทดลองสั่งงาน เปิด/ปิด หลอดไฟ LED ที่เชื่อมต่อกับ ขา PC13 ที่มาพร้อมกับบอร์ด STM32 อยู่แล้ว หลักการทำงานคือ ให้มีการทำให้ LED กระพริบด้วยอัตราคงที่ (ให้สลับสถานะลอจิกทุก ๆ 1000 มิลลิวินาที)
เขียนโปรแกรมและอัพโหลดโค้ดด้านล่างนี้ ไปที่ STM32
void setup() {
pinMode(PC13, OUTPUT);
}
void loop() {
digitalWrite(PC13, HIGH);
delay(1000);
digitalWrite(PC13, LOW);
delay(1000);
}
ไปที่ Tools -> Board -> STM32F1 Boards (STM32duino.com) -> Generic STM32F103C series
ไปที่ Tools -> Upload method: -> Serial
เลือก Port โดยไปที่ Tools -> Port -> COM6
(โดย COM6 แต่ละเครื่องจะไม่เหมือนกัน ให้เลือกตามที่ปรากฎ)
กดปุ่ม RESET 1 ครั้ง
คลิกที่ Upload
รอจนกระทั่งขึ้น Done uploading. ที่แถบด้านล่าง และ บรรทัดสุดท้าย ด้านล่างสุดขึ้นคำว่า done. แสดงว่าเราอัพโหลดโปรแกรมลงบอร์ด STM32 ได้สำเร็จแล้ว
5 : ทดสอบการทํางาน
ย้ายจั้มเปอร์สีเหลืองด้านบน จาก โหมดอัพโหลดโปรแกรม เปลี่ยนเป็น โหมดใช้งาน
กดปุ่ม RESET 1 ครั้ง
ผลลัพธ์การทำงานคือ ไฟ LED สีเขียว กระพริบ แสดงว่า การอัพโหลดโค้ด โปรแกรมแรกของคุณ กับ STM32 สำเร็จแล้ว
6 : อุปกรณ์ที่ใช้
- 1. STM32F103C8T6 Development Board Minimum STM32
- 2. CP2102 USB 2.0 to UART TTL 5PIN Connector Module
- 3. Breadboard 830 Point MB-102
- 4. Jumper (M2M) cable wire 20cm Male to Male