沁恒CH32V103C8T6开发环境笔记
CH32V103C8T6
CH32V103C8T6是沁恒的RISC-V内核MCU, 基于RISC-V3A处理器, 内核采用2级流水线处理,设置了静态分支预测、指令预取机制,支持DMA. 主要参数如下
- CPU: 32位RISC-V3A, RV32IMAC指令集, 最高80MHz, 典型72MHz
- RAM: 20KB
- Flash: 64KB
- BootLoader: 3.75KB 系统引导程序存储区
- 供电: 2.7V - 5.5V (兼容3.3V和5V)
- Timer: 通用3, 高级1, 看门狗2, 系统时钟1
- ADC: 12bit, 10CH
- SPI: 2
- I2C: 2
- UART: 3
- USBHD: 1
- 封装: LQFP48

硬件部分
烧录器 WCH-Link
需要准备一片 WCH-Link 用于烧录沁恒的芯片. 市面上有兼容 DAP-Link 和 WCH-Link 的烧录器. 注意看烧录器的说明, 其模式在加电前通过按键可以切换. 烧录 CH32V103 时, 必须处于 WCH-Link的状态

开发板 Bluepill
因为 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 的驱动就装上了, 不需要再另外安装.
- 下载地址 http://mounriver.com/download
- 使用介绍
测试项目
创建项目
下面建一个测试项目, 通过GPIO驱动板子上的PC13 LED
File -> New -> MounRiver Project, 在对话框中
- 选择芯片型号 WCH -> CH32V103 [RIsC-V] -> CH32V103C8T6
- 输入Project Name, 例如 Test001
- 勾选 Use default location, 如果需要放到其他目录, 这里可以不勾选, 自行选择
- Template Type 选择 NoneOS, 因为这只是个简单测试, 只需要while循环即可
- 点击 Finish
在项目 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:%d\r\n", SystemCoreClock);
printf("GPIO Toggle TEST\r\n");
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烧录.
参考
- 硬件和接线 https://blog.51cto.com/u_15127636/4347970
- MounRiver Studio 烧录
- https://github.com/weimingtom/wmt_ch32_study
沁恒CH32V103C8T6开发环境笔记的更多相关文章
- 沁恒CH32V103C8T6(二): Linux RISC-V编译和烧录环境配置
目录 沁恒CH32V103C8T6(一): 核心板焊接和Windows开发环境配置 沁恒CH32V103C8T6(二): Linux RISC-V编译和烧录环境配置 硬件准备 CH32V103 开发板 ...
- 沁恒CH32V003F4P6 开发板上手报告和Win10环境配置
CH32V003 沁恒最近推出的低价CH32V003系列, 基于青稞RISC-V2A内核, 48MHz主频, 2KB SRAM, 16KB Flash, 工作电压兼容3.3V和5V. 主要参数如下 S ...
- Java开发环境笔记
在配置环境变量中 设置Java_home: 一是为了方便引用,比如,jdk安装在c:\jdk16.0目录里,则设置java_home为该目录路径,那么以后要使用这个路径的时候,只需输入%java_ho ...
- webpack4搭建Vue开发环境笔记~~持续更新
项目git地址 一.node知识 __dirname: 获取当前文件所在路径,等同于path.dirname(__filename) console.log(__dirname); // Prints ...
- Windows下Qt5搭建Android开发环境笔记
Windows很大的特点是配置使用几乎都可以图形化进行,和Linux比起来在很多时候配置环境也要方便很多.所以,搭建Qt for Andorid也是十分简单的.需要以下工具: 1.最方便的Qt官方包, ...
- STM8S103F3P6 开发环境笔记
STM8S103F3 产品手册 https://www.st.com/resource/en/datasheet/stm8s103f2.pdf 内核 16 MHz advanced STM8 core ...
- docker-ce 搭建的 lamp 开发环境笔记
工作目录: /home/{username}/dockers/lamp 将docker容器的apache的80 映射为本地主机的81 # sudo docker pull mattrayner/lam ...
- 沁恒CH32V003(二): Ubuntu20.04 MRS和Makefile开发环境配置
目录 沁恒CH32V003(一): CH32V003F4P6开发板上手报告和Win10环境配置 沁恒CH32V003(二): Ubuntu20.04 MRS和Makefile开发环境配置 硬件准备 沁 ...
- Linux下STM32开发环境的搭建
目录 一.概述 1.目的 2.开发环境描述 3.Eclipse构建的STM32集成开发环境结构 4.GDB / GDB Server 调试模型 二.搭建步骤 三.详细的搭建过程 1.安装eclipse ...
随机推荐
- 分布式集群中为什么会有 Master?
在分布式环境中,有些业务逻辑只需要集群中的某一台机器进行执行,其他的机 器可以共享这个结果,这样可以大大减少重复计算,提高性能,于是就需要进行 leader 选举.
- 遇到的问题之“解决tomcat中文乱码问题”
方案1:在server.xml中添加了 URIEncoding="UTF-8" 属性 路径:C:\stop\apache-tomcat-8.5.69\conf 修改内容 如若方案1 ...
- IPhoneX网页布局简介
IPhoneX全面屏是十分科技化的,但是由于其圆角和摄像头刘海位置以及操控黑条的存在使得我们需要去对其样式做一些适配,没有X的同学可以开启 Xcode 9 的iPhone X 模拟器作为学习和调试. ...
- [转载] Link prefetch
本来想翻译的但是有人翻译了,还是转过来吧.原文<HTML5 Link Prefetching>,译文<使用HTML5的页面资源预加载(Link prefetch)功能加速你的页面加载 ...
- C# 将Excel转为PDF时设置内容适应页面宽度
将Excel转为PDF格式时,通常情况下转换出来的PDF页面都是默认的宽度大小:如果Excel表格数据的设计或布局比较宽或者数据内较少的情况,转出来的PDF要么会将原本的一个表格分割显示在两个页面,或 ...
- 安装并使用Junit
在Eclipse中配置Junit的方法有两种方式: 第一种方法: 1.下载junit的jar包,目前它的版本是junit3.8.1,可以从www.junit.org上下载. 2.在要使用Junit的p ...
- JavaScript实现指定格式字符串表单校验
运行效果: 源代码: 1 <!DOCTYPE html> 2 <html lang="zh"> 3 <head> 4 <meta char ...
- echarts中boundaryGap属性
boundaryGap:false boundaryGap:true 代码处: xAxis: { type: "category", data: ["06-01" ...
- vue-cropper裁剪上传
效果图: 全部代码: npm install vue-cropper //首先 安装vue-cropper main.js全局引用: import VueCropper from 'vue-cropp ...
- ASP.NET Core高性能服务器HTTP.SYS
如果我们只需要将ASP.NET CORE应用部署到Windows环境下,并且希望获得更好的性能,那么我们选择的服务器类型应该是HTTP.SYS.Windows环境下任何针对HTTP的网络监听器/服务器 ...