基于CH32V203C8T6的测评
上一篇,我们在使用前,从板载资源和片上外设及资料支持的层面分析了评测的资源,本篇之后,我们将实际去使用该片评测板并实际的去感受芯片的功能。
编译环境的安装
沁恒评估板的官方的编译环境是MounRiver(点击下载),
官方链接中:
MounRiver_Studio_Setup_V185.zip
MounRiver_Studio_Community_Win_V150.zip
我个人习惯使用S32Design Studio,所以我选择下载MounRiver_Studio_Setup_V185.zip,Eclipse重度爱好者也可以选择MounRiver_Studio_Community_Win_V150.zip,如下的安装教程也是基于第一个安装包,选择第二个安装包的也可以参考。
步骤一、下载安装包
首先,进入下载界面,选择如上图的安装包,并完整下载。
步骤二、进入安装界面
按照提示,点击 下一步 。
步骤三、接受许可证协议
按照提示,点击 我接受。
步骤四、选择安装路径
注意路径中不要有空格和中文,选择好路径后,点击下一步。
步骤五、选择快捷式
默认即可,也可以自定义名称,点击安装
步骤六、等待安装
安装速度因人而异,耐心等待完成
安装完成
点击完成,可以取消运行 MounRiver_StudioR(R),如果你不打算现在就使用编译环境
编译环境使用
1、新建官方模板工程
(1)点击菜单栏 File -> New -> MounRiver Project。
(2)配置参数
- Project Name新建工程的名称,可自行定义。
- 工程存放路径,默认使用的路径为MRS的workspace,取消勾选use default location后,可自定义存放路径,注意,自定义路径不要有空格和中文。
- 选择芯片型号,CH32V203C8T6
- Debugger选择WCH-Link(评估板套装里送了WCH-Link官方烧录器)
- 点击Finish,完成新建工程。
2、编写代码
整个界面主要包括:
- 文件导航区——展示工程中文件的组成
- 代码区——展示代码
- 编译区——展示编译过程与结果
LED 工程是我们新建的空白模板工程,我们可以看到main.c中已经预先给我们生成了串口代码,采用串口是我们常见的代码监测手段,通过串口打印诊断信息,我们可以脱机监测实际运行过程中的代码变化。
2-1 分析工程组成
- Include
- 库路径,包括全部可以调用的库函数的链接,需要通过下面的界面去添加库链接来改变,具体的操作后续会讲解,该问题不是今天的重点
- 库路径,包括全部可以调用的库函数的链接,需要通过下面的界面去添加库链接来改变,具体的操作后续会讲解,该问题不是今天的重点
- Core
- 内核文件,包括内核的代码,主要控制内核特权、中断仲裁等内核级权限的操作
- Debug
- 串口调试文件,包括串口的基本操作,主要用于脱机状态下的值通过串口的方式传输出来,以逼近反映实际运行下的状态变化
- Ld
- 链接文件,ld文件,主要实现代码的链接
- Peripheral
- 官方外设库,包括片上外设的库C文件和库H文件,便于我们调用,从而直接去构建我们的代码,而减少关注芯片寄存器,降低入手难度
- Startup
- 启动文件,包括.s文件,由汇编编写的启动文件,完成堆栈空间的搭建、中断表空间的映射等准备操作
- User
- 用户文件,包括main.c以及系统时钟函数、中断函数。
2-2 实现GPIO简易代码(点亮LED)
2-2-1 编写初始化代码
//GPIO初始化
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure={0};
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_SetBits(GPIOA, GPIO_Pin_1);
- 初始化外设时钟
- 新建初始化结构体并清零
- 编写初始化结构体为:
- 引脚为:Pin1
- 引脚模式:推挽输出
- 引脚带宽速度:50Mhz
- 调用初始化函数,初始化引脚
- 初始状态置位引脚PA1
\\点亮LED
GPIO_ResetBits(GPIOA, GPIO_Pin_1);
2-2-2 连接电路
板载电路中,LED并未与其他脚连接,所以我们必须人为外接线,将LED1的一端引脚连到PA1
2-2-3 测试结果
图中可见,板载的LED1被点亮。