[MCU] 【RISC-V MCU CH32V103测评】初体验点亮LED

bigbat   2021-1-21 17:04 楼主

板子拿到以后发现和图片不一样,板子很小,好象是MIN版的。只带了一块调试板。板子有没有带任何的线缆,所以需要一些其它的器材。USB-TypeC接头线一条,一个P5X2的电缆,因为调试板接头是USB接头,需要一条延长线(我用USB-HUB代替)。实验的步骤如下:友情提示先看板子的PDF文档!

一、下载:MounRiver Studio软件,需要注意的是这个软件是需要java环境的。java一定要装好,我这里是java 8的环境。安装很简单,一路的“NEXT”。建议安装在磁盘空间比较大的磁盘。我安装到F盘。

我安装好以后是这样子地。

二、连接调试器到主机,确认驱动正常。这个调试器可以虚拟出一个UART端口,所以暂时不需要串口电缆。

三、使用USB-TypeC电缆连接开发板,将电源开关拨到ON的位置,可以发现电源LED点亮。

四、将调式器的P2X5电缆连接到开发板。这个注意该开发板可以由调试器供电。USB-TypeC电缆可以不用连接。

五、下载样例程序,CH32V103EVT.zip解压就可以,

六、建立一个新工程,在建立工程时选择芯片的型号"CH32V103C8T6"

 

项目自动建立一个模板,我直接编译,该模板。使用flash菜单,下载程序到芯片(注意:这里一定要连接好调式器!)

我的打开串口助手设置为:115200,8,N,1

可以看到输出:

说明串口通讯正常。

七、点亮LED

首先注意板子的LED线没有连接到任何的PIN上,需要将线连接到PA0端口

看到了吧!线没有接,我找了一条线把PA0和LED1接上。将程序拷贝到我的项目。

/********************************** (C) COPYRIGHT *******************************
* File Name          : main.c
* Author             : WCH
* Version            : V1.0.0
* Date               : 2020/04/30
* Description        : Main program body.
*******************************************************************************/

/*
 *@Note
 GPIO例程:
 PA0推挽输出。
 
*/

#include "debug.h"

/* Global define */


/* Global Variable */


/*******************************************************************************
* Function Name  : GPIO_Toggle_INIT
* Description    : Initializes GPIOA.0
* Input          : None
* Return         : None
*******************************************************************************/
void GPIO_Toggle_INIT(void)
{
  GPIO_InitTypeDef  GPIO_InitStructure;

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
}

/*******************************************************************************
* Function Name  : main
* Description    : Main program.
* Input          : None
* Return         : None
*******************************************************************************/
int main(void)
{
	u8 i=0;

	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    Delay_Init();
	USART_Printf_Init(115200);
	printf("SystemClk:%d\r\n",SystemCoreClock);

	printf("GPIO Toggle TEST\r\n");
	GPIO_Toggle_INIT();

	while(1)
  {
		Delay_Ms(250);
		GPIO_WriteBit(GPIOA, GPIO_Pin_0, (i==0) ? (i=Bit_SET):(i=Bit_RESET));
	}
}

将程序下载到板子,可以看到板子的LED灯开始闪亮了。

 

IMG_1400.JPG

通过阅读开发板的资料发现这颗芯片的总线设计和ARM的总线非常的象,我猜想编程方法也应该相似。

 

 

回复评论 (1)

和ARM的总线非常的象,那么恭喜你猜对了,哈哈。代码挺简洁的。
点赞  2023-1-28 16:31
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复