CH32V103C8T6是沁恒的RISC-V内核MCU, 基于RISC-V3A处理器, 内核采用2级流水线处理,设置了静态分支预测、指令预取机制,支持DMA. 主要参数如下
需要准备一片 WCH-Link 用于烧录沁恒的芯片. 市面上有兼容 DAP-Link 和 WCH-Link 的烧录器. 注意看烧录器的说明, 其模式在加电前通过按键可以切换. 烧录 CH32V103 时, 必须处于 WCH-Link的状态
因为 CH32V103C8T6 引脚布局与 STM32F103C8T6, CH32F103C8T6 完全一致, 硬件设计通用,PIN对PIN兼容, 所以可以直接使用 STM32F103C8T6 核心板(Bluepill)作为开发板.
手里正好有一片 STM32F103C6T6 的开发板, 电路和 STM32F103C8T6 是一样的, 只是芯片型号不同, 于是用热风焊将C6T6吹下来, 把 CH32V103C8T6 换上去.
热风枪温度设置成290度, MCU加上助焊油, STM32F103C6T6 吹掉之后的焊盘
焊上了 CH32V103C8T6, 第一次放得有点歪
又吹了一遍, 这次小心放正了
事后感觉有些PIN虚焊了, 所以又用电烙铁拖了一遍
WCH-Link -> Bluepill
3V3 -> 3V3
GND -> GND
SWD -> SWIO
SCK -> SWCLK
软件部分其实就是 MounRiver Studio, 下载完解压后安装. MounRiver Studio 是基于 Eclipse 的扩展开发环境, 对于熟悉 Eclipse 的人用起来还比较方便. 安装 MounRiver Studio 的同时, WCH-Link 的驱动就装上了, 不需要再另外安装.
下面建一个测试项目, 通过GPIO驱动板子上的PC13 LED
File -> New -> MounRiver Project, 在对话框中
在项目 Project Explorer 中会出现目录结构,
用户代码在 User 目录下, 展开 User, 打开 main.c 将内容修改为
#include "debug.h" void GPIO_Toggle_INIT(void) { GPIO_InitTypeDef GPIO_InitStructure = {0}; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOC, &GPIO_InitStructure); } int main(void) { u8 i = 0; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); Delay_Init(); USART_Printf_Init(115200); printf("SystemClk:%drn", SystemCoreClock); printf("GPIO Toggle TESTrn"); GPIO_Toggle_INIT(); while(1) { Delay_Ms(500); GPIO_WriteBit(GPIOC, GPIO_Pin_13, (i == 0) ? (i = Bit_SET) : (i = Bit_RESET)); } }
使用图标栏中的编译按钮, 或者按F7
编译项目(完整编译使用Shift
+F7
)
首先在设备管理器中查看 Ports (COM & LPT), 如果烧录器处于WCH-Link状态并且已经连接电脑, 会出现 WCH-LinkRV SERIAL(COMx) 这样的设备
使用图标栏中的下载按钮(Download), 或者按F8
烧录.