keiske-hongyo が 2024年12月31日20時51分39秒 に編集
初版
タイトルの変更
CH32V203K8T6の動作確認(Lチカプログラム作成)
タグの変更
CH32V203
メイン画像の変更
記事種類の変更
セットアップや使用方法
Lチカの変更
ライセンスの変更
(CC BY-NC-SA 4+) Creative Commons Attribution-NonCommercial-ShareAlike CC BY-NC-SA version 4.0 or later
本文の変更
# 初めに 最近、秋月電子で販売されているCH32Vシリーズが格安であったのでどのようなものか興味を持ちました、今回秋月電子で販売している3種類を購入し、1番ピン数が多く、使いやすいCH32V203を使用することにしました。Arduinoにして使用もできるのですが、今回はWCH社が出している公式SDKを使用するのでC言語でプログラムを作成することにしました。 # 実験回路 動作確認回路は下の図になります。プログラムを書き込むにはWCH-LinkEエミュレータを使用し、WCH-LinkEエミュレータのSWDIOとSWCLKをCH32V203に接続して書き込みを行います。  # プログラム開発環境 プログラムの作成にはVisual Studio Codeを使用し、拡張機能としてPlatoformIOをインストールをし、CH32V が利用できるように設定をしてプログラムを開発しました。PlatoformIOインストールやPlatformIOでCH32Vを利用するための設定については、いろいろな方が紹介しているのでインターネットで検索してください。 PlatformIOをインストールし、CH32Vの開発ができる設定が終了したら、プロジェクトを作成してください。プロジェクト名を入力し、使用するCPUをch32v203K8T6、FrameworkをNoneos-sdkにして作成してください。  次のプログラムを作成して書き込みます。 ```C:LED点滅プログラム /* CH32V203 GPIO test Sample Program */ #include "debug.h" #define SYSTICK_ONE_MILLISECOND ((unsigned int)SystemCoreClock / 1000) #define SYSTICK_ONE_MICROSECOND ((unsigned int)SystemCoreClock / 1000000) /* GPIO 初期設定 */ void IO_Init() { GPIO_InitTypeDef GPIO_InitStructure={0}; /* GPIOA 使用設定 */ RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA , ENABLE ); /* PA10を出力に設定 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init( GPIOA, &GPIO_InitStructure ); } /* メインプログラム */ int main(void) { unsigned char flg; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); SystemCoreClockUpdate(); Delay_Init(); USART_Printf_Init(9600); printf("SystemClk:%ld\r\n", SystemCoreClock); printf( "ChipID:%08lx\r\n", DBGMCU_GetCHIPID() ); /* 出力ポート設定 */ IO_Init(); flg = 0x00; while(1){ GPIO_WriteBit(GPIOA, GPIO_Pin_10,(flg & 0x01)); flg = (~flg) & 0x01; Delay_Ms(100); } } ``` # 最後に 今回はCH32V203の開発環境を構築し、動作の確認をしました。公式のSDKの使い方がわからず、いろいろと調べることが多かったですが、どうにかどうさせることができました。もう少し、調べて周辺機器の動作プログラム作成していきたいと思います。