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

ตัว Arduino CH32V003 นี้ยังไม่มีการรองรับ DEBUG แบบ Step by Step ได้ แต่สามารถส่งค่าต่างๆผ่านทาง USART เพื่อดูได้

จากนั้นลองเขียนโปรแกรมไฟกระพริบ อย่างง่ายๆ ตาม 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 ได้อย่างไม่มีปัญหา

ต้นฉบับ Arduino Code for CH32V003

CH32V003 MCU : https://shopee.co.th/witawat57/23167328296

สนับสนุนบทความดีๆ ได้ที่ร้านค้าของเรา เพื่อเป็นกำลังใจในการเขียนบทความใหม่ๆ

บทความที่เกี่ยวข้อง