การใช้งาน STM32CubeMX STM32CubeF4 ร่วมกับ SW4STM32

STM32CubeMX เป็นตัว generate code สำหรับสร้าง source code เพื่อใช้งานร่วมกับ Library STM32CubeF4 ซึ่งเป็น Library สำหรับช้วยให้เขียนโปรแกรมควบคุม MCU ได้ง่ายขึ้น ซึ่งจะคล้ายๆ MPLAB Harmony framework ของ Microchip

ในบทความนี้จะแสดงตัวอย่างการใช้งาน STM32CubeMX สร้าง code ขึ้นมาและนำไปใช้ร่วมกับ SW4STM32 หรือ System Workbench for STM32 ซึ่งเป็น Free IDE และ Compiler สำหรับ STM32 โดยตัว IDE จะสร้างมาจาก Eclipse ซึ่งจะคล้ายๆกับ MPLAB X ของ Microchip เวลาใช้งานก็ค่อนข้างสะดวกเพราะมี Auto complete ให้ เวลาเราเรียก structure ต่างๆ ส่วน Compiler ก็เป็น GCC สำหรับ STM32

ดาวน์โหลดไฟล์ต่างๆสำหรับติดตั้งบนคอมพิวเตอร์ (ต้องสมัครสมาชิกก่อนถึงจะดาวน์โหลดได้)
STM32CubeMX
STM32CubeF4
SW4STM32
JAVA Runtime Environment

หลังจากที่ดาวน์โหลดไฟล์ต่างๆที่ต้องใช้เสร็จแล้ว ก็ให้ติดตั้งไฟล์ทั้งหมดลงบนคอมพิวเตอร์ แล้วเปิดโปรแกรม STM32CubeMX ขึ้นมา คลิกที่ File->New Project เลือกเบอร์ Microcontroller ที่จะใช้ในโปรเจคแล้วคลิก OK

หลังจากนั้นให้ตั้งชื่อโปรเจค ตั้งค่าตำแหน่งโฟลเดอร์ของโปรเจคและตำแหน่งโฟลเดอร์ของ STM32CubeF4 ตัวอย่างดังรูป ให้ uncheck ตรงช่อง Generate Under Root ออกด้วย

ขั้นตอนต่อไปคือการเปิดใช้งาน RCC เพื่อเปิดใช้งาน Crystal oscillator โดยบอร์ดที่ใช้ในตัวอย่างจะใช้ Crystal 8MHz แล้วเลือก PF10 เป็น GPIO_Output

ต่อไปก็เป็นการตั้งค่า Clock ให้กับ MCU โดยเลือก Input frequency = 8MHz, PLL Source Mux = HSE, System Clock Mux = PLLCLK และตั้งค่า HCLK = 160MHz แล้วกด Enter

ต่อไปให้คลิกที่ Tab Configuration เลือก GPIO เพื่อตั้งค่า GPIO output level = high เป็นค่าเริ่มต้น

หลังจากตั้งค่าต่างๆแล้ว ให้คลิกที่เมนู Project -> Generate Code เพื่อทำการสร้าง Code เพื่อนำไปใช้ร่วมกับ SW4STM32 ต่อไป

หลังจาก Generate code แล้ว ให้เปิดโปรแกรม System Workbench for STM32 ขึ้นมา แล้วตั้งค่า Workspace ให้ตรงกับ Directory ที่เรา Generate code ออกมา

หลังจากตั้งค่า Workspace แล้ว ให้ Import project ที่สร้างจาก STM32CubeMX เข้ามาใน Workspace โดยคลิกที่เมนู File -> Import เลือก General -> Existing Project into Workspace

เลือก Root directory ให้ตรงกับ Directory ที่ใช้ STM32CubeMX สร้าง Code ขึ้นมา แล้วเลือก Project ชื่อ led_blink ตามรูป

เมื่อ Import project เข้ามาใน workspace แล้ว ให้ทดสอบ Debug ดูโดยการคลิกที่เมนู Run -> Debug แล้วโปรแกรมจะให้เราตั้งค่าบอร์ดสำหรับ Debug (หากยังไม่ได้กำหนด) ให้ตั้งค่า MCU และ Debugger ให้ตรงกับที่เราใช้งานแล้วกด OK

หากทำทุกอย่างถูกต้องแล้ว โปรแกรมก็จะ compile source code และเริ่ม Debug ให้กด Resume หรือ F8 เพื่อให้ MCU รันไปตามปกติ ทดสอบให้ LED กระพริบโดยเพิ่ม Code เข้าไปในฟังก์ชั่น main ดังนี้ แล้วลอง Debug ดูก็จะเห็น LED บนพอร์ท PF10 กระพริบ

/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */

    HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_10);
    HAL_Delay(100);
}
/* USER CODE END 3 */