セットアップや使用方法 Lチカ 156
CH32V203K8T6の動作確認(Lチカプログラム作成)
初めに
最近、秋月電子で販売されている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にして作成してください。
次のプログラムを作成して書き込みます。
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の使い方がわからず、いろいろと調べることが多かったですが、どうにかどうさせることができました。もう少し、調べて周辺機器の動作プログラム作成していきたいと思います。
投稿者の人気記事
-
keiske-hongyo
さんが
2024/12/31
に
編集
をしました。
(メッセージ: 初版)
ログインしてコメントを投稿する