วิธีการใช้ Visual Studio Code ร่วมกับ STM32CubeMX
Tags: stm32, vscode, atom, platformio
Published: 2020-05-31 09:04:06

![ใช้งาน Visual Studio Code ในการเขียนบอร์ด STM32 และใช้งานร่วมกับ STM32CubeMX](https://dev-to-uploads.s3.amazonaws.com/i/hh3i04mzmu1jn29y2iza.png)

**สวัสดีคร้าบบ!!**  ผม**นน**นะคร้าบ! 😁 วันนี้อาจจะมา**แปลก**หน่อยนะครับ 🤔 เพราะว่าผมลองเปลี่ยนมาใช้**เจ้า [**dev.to**](https://dev.to/) 😮** ครับผม... ซึ่งใน**บทความ**นี้ก็ตาม**หัวข้อ**เลยอะครับ

### **วิธีการใช้ Visual Studio Code ร่วมกับ STM32CubeMX** 😎
#### ( Atom ก็ได้นะจ๊า ) 😍

อย่าช้าเลยดีกว่า.. ไปเลย!! 

----------

ซึ่งมาถึงเราก็ต้องลง **Software** ที่ต้องใช้ก่อนนะครับ
- [Visual Studio Code](https://code.visualstudio.com/) ( **VS Code นี่พระเอกเราเลยยย!!!** 😂 )
- [Python 3.x](https://www.python.org/downloads/) ( น่าจะมีกันหมดแล้วมั้ง**..!???** 😕 | **ไม่ใช่ Python 3.8** )
- [STM32CubeMX](https://www.st.com/en/development-tools/stm32cubemx.html)
- [LLVM Clang](https://releases.llvm.org/download.html) ( Version ล่าสุด )

ต่อไปก็เป็น **Extensions** ใน **Visual Studio Code** ที่เราจะต้องใช้
- [Visual Studio IntelliCode](https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode) ( ตัว**ช่วย**ในการ**เขียนโปรแกรม!!** )
- [PlatformIO](https://platformio.org/) ( **เครื่องมือ**หลักในการ **Build** หรือ **Flash** )
- [C/C++](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools) ( ตัวเพิ่ม**ภาษา C/C++** เข้า **IntelliSense** )

พอเตรียมพวก **Software** และ **Extensions** เสร็จแล้ว.. **ยังไม่หมดฮะ!!** 🤣 

เราก็ลง **Libraries** ใน **Python** ต่ออีกสักนิด.. 
โดยปกติแล้วเจ้า **Environment** ของ **PlatformIO** ที่ลงมาจาก **VS Code** จะเป็น **Python 2.7** แต่ว่า **lib** ที่เราจะลงเนี่ยมันจะต้องใช้ **Python 3** 
เพราะฉะนั้นเจ้า **PlatformIO** ที่เป็น **2.7** จะเอาไว้สำหรับ**Build, Flash, Debug** หรือทำได้มากกว่านั้น

**เอาละ.. เอาละๆ พูดมาก**ไปละ **555+ มาลงเลยดีกว่า!!** 😂
#### **Python 3**
```python3
pip install platformio
```
```python3
pip install stm32pio
```

ส่วน **PlatformIO** ที่เราลงไปเมื่อกี้.. 😶 ก็จะเอาไว้**ใช้**สำหรับ**สร้างโปรเจกต์ของ PlatformIO สำหรับเขียนบอร์ด STM32**

ส่วน **stm32pio** จะเป็นตัวแปลงให้สามารถใช้งานร่วมกับ **PlatformIO** ได้..

**โอเค!!..** ทุกอย่างพร้อม! **มาเริ่มเลยดีกว่าครับ..!?!!** 😁

---------

## ส่วนของ **STM32CubeMX**

1. ก็เปิด **STM32CubeMX** มาสร้างโปรเจกต์ตามปกติเลยครับ **Config ตามปกติ**
![ยกตัวอย่าง.. ผมใช้แค่ Timer](https://dev-to-uploads.s3.amazonaws.com/i/rbyanju2ccbxm2hfm7da.png)
2. แต่พอ **Config** เสร็จแล้วก็ไปที่ **Project Manager** แล้ว**ปรับ settings ตามภาพด้านล่างเลย!!**
![ตั้งค่าตามนี้... แล้วปรับเองนิดหน่อยจ้า..](https://dev-to-uploads.s3.amazonaws.com/i/37undover4ehc8c7ih25.png)
3. **Config** อีกสักนิด... ปรับตามนี้เลยครับ!!
![ปรับตามนี้เลยครับ](https://dev-to-uploads.s3.amazonaws.com/i/xg75wnbotbj48isjdr44.png)
4. แล้ว**กด SAVE ( SAVE นะครับ! CTRL + S ) ไม่ใช่ GENERATE CODE**
5. พอ **Save ( ไม่ใช่ GENERATE CODE )** เสร็จแล้วก็**ปิดโปรแกรมไปเลยคร้าบบ!!**

----------

## ส่วนของ **Terminal**
1. เปิด **Terminal** มาเลยครับ
2. แล้ว พิมพ์ ``cd `` แล้ววางข้อความที่ **Copy** มาเลยครับ แล้วก็ **cd เข้าไปซะ..!**
3. ต่อไปก็สร้างโปรเจกต์ครับ
4. หาชื่อบอร์ดจาก
```
pio boards
```
ได้เลยครับ 

### หาบอร์ดประเภท STM32 ให้หาใน Categories ``Platform: ststm32``
-----

สำหรับสร้างโปรเจกต์แบบ**ไม่มี Config สำหรับ IDE**
```
stm32pio new -d [วางข้อความ/ชื่อ Project Name จาก STM32CubeMX] -b [บอร์ด] --with-build
```
**ยกตัวอย่าง**
```
stm32pio new -d C:\Users\Pawat\STM32-Projects\SampleProjects\ -b nucleo_f334r8 --with-build
```

-----

สำหรับสร้างโปรเจกต์**สำหรับ VS Code ( Visual Studio Code )**
```
stm32pio new -d [วางข้อความ/ชื่อ Project Name จาก STM32CubeMX] -b [บอร์ด] --start-editor=code --with-build
```
**ยกตัวอย่าง**
```
stm32pio new -d C:\Users\Pawat\STM32-Projects\SampleProjects\ -b nucleo_f334r8 --start-editor=code --with-build
```

-----

สำหรับสร้างโปรเจกต์**สำหรับ Atom**
```
stm32pio new -d [วางข้อความ/ชื่อ Project Name จาก STM32CubeMX] -b [บอร์ด] --start-editor=atom --with-build
```
**ยกตัวอย่าง**
```
stm32pio new -d C:\Users\Pawat\STM32-Projects\SampleProjects\ -b nucleo_f334r8 --start-editor=atom --with-build
```

------

**ได้แล้ววคร้าบบ!!!!** เราก็สามารถใช้งาน **STM32** ผ่าน **Visual Studio Code** หรือ **Atom ได้แล้วว!!**
เราสามารถเปลี่ยน **Config** ได้**แต่อย่ากด GENERATE CODE** **ถ้า**จะ**อัพเดท REGENRATE CODE** ก็**เปิด Terminal ที่ติดมากับ IDE** แล้ว**พิมพ์คำว่า**
```
stm32pio generate
```
**ได้เลย!!** 😃

-----------------

ครับ.. **ก็ได้แล้ววนะคร้าบบ!!** ✨🎉 เราก็สามารถเขียน STM32 บน Visual Studio Code ได้แล้วว.. ก็จบสำหรับบทความนี้แล้วนะครับ **สวัสดีคร้าบบ!!**