初投稿です。適当です。
初めに
ch32vの開発はArduinoIDEでもできるが、容量をとても食うので(Lチカで50%程占有)
そのため、公式が出しているCH32Vの開発環境であるmounriver(2)か、mounriver(2)とだいたい同じ感覚で使える。platformIOでの開発がいい気がする。
書き込み機(WCHLink-E)のドライバーについて
- 書き込み機であるWCH-LINK-E用のドライバーの入手。ドライバーだけはないので、入手するには
https://www.wch.cn/downloads/WCH-LinkUtility_ZIP.html
ここの公式サイトから WCH-LinkUtilityソフトごとダウンロードする必要がある。
おそらく、
ダウンロードしたフォルダには、WCH-LINK-Eのドライバや、WCH-LINK-Eの設定を行うソフトが入ってる。
フォルダの中にある「WCHLinkDrv_WHQL_S.exe」がドライバの本体


クリックするとUAC画面が出て、インストールウィザードも出ないが、デバイスマネージャーを見て、WCH-LINK-Eをつないで認識されていればOK
※新しく買ったWCH-LINK-Eとかだと、WCH-LINK-Eのモードを WCH-LinkUtilityソフトから変更しなきゃかも、記事下の参考サイトとか参照して
platformIOでの設定
-
VSCODE、platformIOの導入はググって
-
gitをふつーにダウンロードする
Git - Install for Windows
インストール画面は全部てきとうに進めていい。ダウンロードする事が目的だからこれでいいのだ -
参考サイト(Installation — PIO CH32V 0.1 documentation )の通りに、「Advanced installation」して、https://github.com/Community-PIO-CH32V/platform-ch32v.git
を打ち込んでinstalをクリック。gitが入ってない的なエラー出たら上のgitのダウンロードがちゃんとできてるか確認

読み込みで2分くらいしても読み込み中とかならいったん閉じたりしてもう一度やったりするると、インストール成功になったりならなかったり

Platform has been successfully installed!の表示が出たら成功。完璧ならいろんな項目のインストールが成功したログが長く続く

「platforms」の画面でこのように「WCH CH32V」表示が出てたら成功
ファイル構成
mounriver2と異なる点として、ファイル構成とか初期設定がある。
ファイル構成はスクショの通り、なんか基本main.cや自分で作ったファイル,ヘッダファイルはsrc内でいいっぽい

プロジェクトの設定(例:CH32V203K8T6)
[env:genericCH32V203K8T6]
platform = ch32v
board = genericCH32V203K8T6
framework = noneos-sdk
;ここまではプロジェクト作成時点で記入されている
board_build.clock_source = hsi+pll
board_build.f_cpu = 144000000L
build_flags = -DDEBUG=DEBUG_UART2
board_build.cpp_support = yes
・board_build.clock_source:[記述必須!]内部クロック使うか外部クロック使うか決める
基本hsi+pll使う。水晶発振子外付けするならhse
参考...クロックソース構成 — PIO CH32V 0.1 ドキュメント
・board_build.f_cpu:[記述必須!]クロック周波数。ch32Vのシリーズによって使える周波数は違う
ch32V003は最大48Mhz。ch32V203は最大144Mhz。基本最大クロックで使う
・build_flags = -DDEBUG=DEBUG_UART○○ :シリアルモニタでデバッグするためのチャンネル指定。-DDEBUGとDEBUG_UART○○とその間の=の部分はスペースを入れてはだめ。エラーになる
通常だとUSART1を使う事になるが、USART1のピンを他の機能で使う時にUART2などにする。どのピンがどのUARTチャンネルかはデータシート見て
・board_build.cpp_support:デフォルトはCのみの対応。C++を使うときはyesにする
参考サイト
