CH32V003 เป็น MCU 32bit ที่มีเทคโนโลยี RISC-V ทำให้มีราคาถูก และมีขนาด Flash 16K ทำให้มีพื้นที่ในการเขียนโปรแกรมได้เยอะมาก และเป็นที่นิยมมากในประเทศจีน และ ประเทศอื่นๆทั่วโลก ดังนั้นจึงมีนักพัฒนา ได้แปลง Arduino CORE ให้รองรับกับ MCU ตระกลุ CH32V003 แต่ก็ยังขาดคุณสมบัติบางอย่างเช่น I2C, SPI และ DEBUG สามารถดูรายละเอียดเพิ่มเติมที่ MoonFox2006/Ardu_CH32V003: Arduino-like framework for WCH CH32V003 MCU (github.com)

บทความนี้จะเป็นวิธีการนำเข้า Template Arduino for CH32V003 ไปยัง MounRiver Studio โดยที่จะทำให้คุ้นเคยกับวิธีการเขียนแบบ Arduino เหมือนเดิม
ขั้นตอนการนำเข้า Template
ให้ download ไฟล์ Template ที่ปรับแก้มาแล้วได้ที่ Arduino_CH32V003 จากนั้นให้ไปที่
Menu > Project > Template Management

แล้วกดปุ่ม Import

กดปุ่ม Browse เลือกไฟล์ที่ได้ Download มา แล้วกดปุ่ม OK


จะมีหน้าต่างแสดงข้อความนำเข้าเรียบร้อยแล้ว ให้กดปุ่ม OK อีกครั้ง โปรแกรมจะแสดงรายละเอียด Template ที่มีอยู่ในระบบทั้งหมด

จากนั้นให้ปิดโปรแกรมทั้งหมด และเพิ่ม Debug Tool ที่ไฟล์
C:\MounRiver\MounRiver_Studio\Manifest\WCH\manifest_dbg.xml
<mcu name="Ardu_CH32V003" mcuconfig="">
    <debugger type="WCH-Link">
        <command type="erase" value="-f "{DEBUGGER_CONFIG}" -c init -c halt -c "flash erase_sector wch_arm 0 last" -c exit" />
        <command type="program" value="-f "{DEBUGGER_CONFIG}" -c init -c halt -c "program \"{TARGET}\" 0x08000000" -c exit" />
        <command type="verify" value="-f "{DEBUGGER_CONFIG}" -c init -c halt -c "verify_image \"{TARGET}\"" -c exit" />
        <command type="reset" value="-f "{DEBUGGER_CONFIG}" -c init -c reset -c exit" />
    </debugger>
</mcu>	
เพิ่มรหัส XML ด้านบนไปตามรูปด้านล่าง และ Save File ให้เรียบร้อยพร้อมเปิดโปรแกรม MounRiver Studio ขึ้นมาอีกครั้ง

จากนั้นลองสร้าง Project ขึ้นมาใหม่



ทดลองกด Build Program

จากนั้นลองเขียนโปรแกรมไฟกระพริบ อย่างง่ายๆ ตาม Code ด้านล่าง
#include "Arduino.h"
constexpr uint8_t LED_PIN = PC4;
void setup() {
    Serial.begin(115200);
    Serial.println("Hello, World!");
    
    pinMode(LED_PIN, OUTPUT);
}
void loop() {
    digitalWrite(LED_PIN, HIGH);
    delay(1000);
    digitalWrite(LED_PIN, LOW);
    delay(1000);    
}
เพียงเท่านี้ก็สามารถใช้งาน Arduino Code กับ CH32V003 ได้อย่างไม่มีปัญหา
CH32V003 MCU : https://shopee.co.th/witawat57/23167328296
สนับสนุนบทความดีๆ ได้ที่ร้านค้าของเรา เพื่อเป็นกำลังใจในการเขียนบทความใหม่ๆ
บทความที่เกี่ยวข้อง
