20円マイコン RISC-V CH32V003 をMounRiver Studioで使ってみよう の続きです。
https://qiita.com/usashirou/items/658394f66705001d950a
1からプログラムを作ってみる
今回は、1からプログラムを作ってみます。
File⇒New⇒MounRiver Project をクリックします。
今回使用するマイコン CH32V003F4P6 を選択します。
CH32V003⇒CH32V003F4P6
Project Name を入力して Finish をクリックします。
生成されたプログラムを見てみましょう。
User⇒main.c をクリックします。
TX:D5
RX:D6
になっています。
コンパイル をクリックします。
ダウンロード します。
TeraTermで見てみましょう。
LED点滅を追加する
シリアル通信にLEDの点滅を追加します。
※UARTのRX/TXがかぶっているので正しいプログラムではありません。
GPIO_Toggle_INIT を追加し main内 を以下のように変更しました。
GPIO_Toggle_INIT
void GPIO_Toggle_INIT(void)
{
GPIO_InitTypeDef GPIO_InitStructure = {0};
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
}
main.c
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
Delay_Init();
GPIO_Toggle_INIT();
USART_Printf_Init(115200);
printf("SystemClk:%d\r\n",SystemCoreClock);
printf("GPIO Toggle TEST\r\n");
USARTx_CFG();
while(1)
{
Delay_Ms(500);
GPIO_WriteBit(GPIOD, GPIO_Pin_0, Bit_SET);
GPIO_WriteBit(GPIOD, GPIO_Pin_4, Bit_RESET);
printf("GPIO Toggle TEST1\r\n");
Delay_Ms(500);
GPIO_WriteBit(GPIOD, GPIO_Pin_0, Bit_RESET);
GPIO_WriteBit(GPIOD, GPIO_Pin_4, Bit_SET);
printf("GPIO Toggle TEST2\r\n");
}
}
ダウンロードプログラムの設定
Download ボタンの横を押す事で Configuration を開く事が出来ます。
TargetMode横の Query をクリックします。
Query をクリックする事で TargetMode が選定されます。
TargetFile を選択します。
Browse をクリックします。
ダウンロード するプログラムを選択します。
Apply and Close をクリックします。
以上で ダウンロード するプログラムを変更することが出来ます。