編集履歴一覧に戻る
keiske-hongyoのアイコン画像

keiske-hongyo が 2024年12月31日20時51分39秒 に編集

初版

タイトルの変更

+

CH32V203K8T6の動作確認(Lチカプログラム作成)

タグの変更

+

CH32V203

メイン画像の変更

メイン画像が設定されました

記事種類の変更

+

セットアップや使用方法

Lチカの変更

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に接続して書き込みを行います。 ![動作回路図](https://camo.elchika.com/c63efac5ef1df1d78eb9a43f3cb881e3b492b292/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33646164353039642d616133622d343132302d616433622d6638623565376137366139332f66626339663938332d393436362d343532622d623163392d393735316664333066383736/) # プログラム開発環境  プログラムの作成にはVisual Studio Codeを使用し、拡張機能としてPlatoformIOをインストールをし、CH32V が利用できるように設定をしてプログラムを開発しました。PlatoformIOインストールやPlatformIOでCH32Vを利用するための設定については、いろいろな方が紹介しているのでインターネットで検索してください。  PlatformIOをインストールし、CH32Vの開発ができる設定が終了したら、プロジェクトを作成してください。プロジェクト名を入力し、使用するCPUをch32v203K8T6、FrameworkをNoneos-sdkにして作成してください。  ![プロジェクトの作成](https://camo.elchika.com/e7adc15a0330ee3a0fa032f2ec8e63ed8687ef76/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33646164353039642d616133622d343132302d616433622d6638623565376137366139332f63646365623530612d343066392d343064312d396131342d663833663630313561303133/) 次のプログラムを作成して書き込みます。 ```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の使い方がわからず、いろいろと調べることが多かったですが、どうにかどうさせることができました。もう少し、調べて周辺機器の動作プログラム作成していきたいと思います。